![]() |
Eigene Class und TStringList
Hallo,
ich habe eine Frage bezügluch eine Stringliste in einer Klasse. Im Moment habe habe ich einen Constructor der so aussieht:
Delphi-Quellcode:
Meine Frage ist nun, ob ich auch einen Destructor verwenden muss bei dem die StringList wieder freigegeben wird oder ob
constructor TDatei.Create();
begin inherited Create; FFehlerliste:=Tstringlist.Create; FEditiert:=false; end; dies automatisch geschieht, wenn ich die Klasse TDatei wieder freigebe. Danke! |
Re: Eigene Class und TStringList
Das musst Du selbst übernehmen. Eine TStringlist ist ja keine Komponente, der Du einen Owner zuweisen könntest, der sich dann um die Freigabe kümmert.
|
Re: Eigene Class und TStringList
Du solltest einen Destructor verwenden, da du sonst Speicherlacks hast.
Interne Objekte werden nicht frei gegeben. Delphi hat nunmal keinen Garbage Collector. |
Re: Eigene Class und TStringList
Alles was man im Konstruktor erzeugt, sollte man im Destruktor wieder entsorgen
|
Re: Eigene Class und TStringList
Hab ich das jetzt richtig verstanden:
Könnte ich dann, für diesen Fall jetzt, der Stringliste Self als Owner zuweisen? Wenn nun die Instanz frei gegeben wird, wird dann auch die Stringlist frei gegeben, ja? das is jetzt rein hypothetisch, ich gebs sonst auch immer im Destructor frei... |
Re: Eigene Class und TStringList
Zitat:
Im Destruktor:
Delphi-Quellcode:
FFehlerliste.Free;
|
Re: Eigene Class und TStringList
Zitat:
Ich glaube, du hast das hier falsch gelesen: Zitat:
|
Re: Eigene Class und TStringList
hallo zusammen,
Zitat:
(Mal abgesen davon das es guter Stil ist selbst aufzuräumen) Gruß K-H |
Re: Eigene Class und TStringList
Delphi.Net hat GC ( eigentlich ja das FrameWork) aber Delphi.Win32 nicht.
|
Re: Eigene Class und TStringList
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:38 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz