Hallo erstmal...
Also ich habe ein inzwischen doch umfangreiches Programm geschrieben, weswegen die Fehlersuche noch etwas schwerer wird. Für euch wahrscheinlich auch. Naja ..Also ich hab ein Problem mit dem Freigeben. Zum Aufbau: Ich ein Grundobjekt. In dem kommen wieder Instanzen von anderen objekten vor und in denen nun eine TStringlist. So ich hab nun zu jedem Objekt eine Methode geschrieben, die die (noch manuell) die zuerst mit create erstellten Objekte wieder frei gibt. Das geht auch so weit, nur bei einer Stringlist nicht. dazu mal ein Beispiel
Delphi-Quellcode:
TObjekt1=class(TComponent)
Stringlist1:TStringlist;
Stringlist2:TStringlist;
Stringlist3:TStringlist;
public
procedure init;
procedure makefree;
end;
TObjekt2=class(TForm);
inhalt:TObjekt1;
procedure init;
procedure beenden;
procedure TObjekt1.init;
begin
Stringlist1:=TStringlist.create;
Stringlist2:=TStringlist.create;
Stringlist3:=TStringlist.create;
end;
procedure TObjekt1.makefree;
begin
Stringlist1.free;
Stringlist2.free; //Hier kommt die Zugriffsverletzung
Stringlist3.free;
end;
procedure TObjekt2.init
begin
inhalt:=TObjekt1.create;
inhalt.init;
end;
procedure TObjekt2.beenden;
begin
inhalt.makefree;
inhalt.free;
self.close;
end;
Ich hoffe ihr könnt damit etwas anfangen, aber der Gesamte Code wäre zu groß...denke ich.
Schon mal vielen dank im voraus.
mfg