Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#12

Re: TList - Fragen zur Speicherverwaltung

  Alt 12. Jan 2009, 17:29
Ich kann den Antwortern eigentlich nur bedingt zustimmen.

Das Freigeben der Objekte in der TList muss man abhängig von dem Objekt machen, an dem TList hängt.
Ist TList in einer Klasse definiert, dann TList aufräumen, wenn diese Klasse sich gerade in Rauch auflöst, wäre wie hier schon richtig angegeben im OnDestroy des Forms.
Ist TList aber als Variable in der Unit definiert, dann sollte die Freigabe im Abschnitt finalization erfolgen.

Objekte in einer (wie hier verwendeten) TList müssen beim Beenden nicht zwangsläufig manuell aus dem Speicher entfernt werden.

Bei einigen Klassen kann ich ja beim Erzeugen auch einen Owner mitgeben TIdFTP.Create( AOwner : TComponent ). Habe ich dieses gemacht, so wird dieses erzeugte Objekt beim Entfernen von Owner auch automatisch aus dem Speicher geschmissen.

Zitat von sirius:
2. Den Speicher gibst du einfach frei, wenn TList.Free (also in Destroy) aufgerufen wird.
aber auch nur die TList selber und nicht die angehängten Objekte!

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat