Einzelnen Beitrag anzeigen

Master of the Wind

Registriert seit: 20. Dez 2005
26 Beiträge
 
#1

Problem bei TStringlist Freigabe

  Alt 20. Dez 2005, 14:57
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
  Mit Zitat antworten Zitat