| Basti hat folgendes geschrieben: |
| habt ihr eine Ahnung, was ich falsch mache? |
Jede menge.
Lassen wir den großen Fehler zum Schluß lösen.
Delphi-Quelltext
1:
| Icon1.LoadFromFile(Source_Edit.Text); |
Du fragst garnicht vorher nach ob die Datei überhaupt existiert (if FileExists ...). Existiert die Datei nicht, dann wird deine Prozedur abgebrochen, jedoch ohne vorher den Speicher wieder frei zu geben. Ein Objekt setzt man immer in einen Try-Finally Schutzblock. Entweder das eine (vorher prüfen ob die Datei wirklich da ist) oder ein Schutzblock:
Delphi-Quelltext
1: 2: 3: 4: 5:
| try finally Icon1.Free; end; |
Ein Schutzblock hat den Vorteil, daß nicht gleich die Prozedur abgebrochen wird, sondern nur der Teil im Schutzblock.
Aber nun zum wichtigsten:
Delphi-Quelltext
1:
| Icon1 := TIcon.Create; |
und nicht Icon1.Create.
Die anderen Sachen lasse ich mal weg, da sie nicht tragisch sind, sonderl lediglich nicht notwendig.