Zu Unit1:
Delphi-Quellcode:
procedure TForm1.FormDestroy(Sender: TObject);
begin
Hintergrund.Free;
Kopf.Free;
Schlange.Free;
//Futter.Free; wird nicht mit TFutter.create erstellt, deshalb ist die Freigabe hier sinnlos
//Schwanz.Free; ebenfalls
end;
Zu mtKopf:
Delphi-Quellcode:
destructor TKopf.destroy;
begin
Icon.Free;
inherited;
end;
In der
Unit mTHintergrund.pas fehlt noch ein Destruktor, weil hier Bild erzeugt wird und keine Freigabe erfolgt:
Bild := TJpegImage.Create;
Du musst dich immer um die Freigabe von Klassen selbst kümmern, wenn du sie mit dem Aufruf TKlasse.Create(...) selbst erzeugst.
Zitat:
Was ist denn das Problem, dass da nichts passiert?
Passieren tut beim Destrukor auch nichts, was man irgendwie visuell mitbekommt (außer man baut ihn fehlerhaft, dann kommt meistens eine Meldung). Es wird nur Speicher wieder freigegeben.
Mfg