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