Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Objekte in einem Array freigeben?


daggit - Sa 21.10.06 15:18
Titel: Objekte in einem Array freigeben?
Hi,

habe da mal eine kleine Frage zum entfernen von objekten aus dem Speicher.
Und zwar habe ich mir ein Array deklariert, welches von mir erstellte Objekte aufnehmen kann.

Bsp:


Delphi-Quelltext
1:
2:
myObj      := TMyObj.Create;
myArray[i] := myObj;


Nun möchte ich per klick auf einen Button das Array komplett leeren. Muss ich nun jede "Schublade" erneut durchlaufen und für jedes Obj. die "free" methode aufrufen, oder gibbts dafür eine methode die dies automatisch vornimmt?
Die methode "Finalize" würde in dem fall, soweit ich weiss, nur das Array deinitialisieren, aber nicht meine Objekte.


Kroko - Sa 21.10.06 15:40

Schau dir mal TObjectList in der unit ContNrs an, dort werden bei entsprechenden Einstellungen (default) alle Objecte bei Clear/Free mit freigegeben. Ich arbeite nur noch damit!


daggit - Sa 21.10.06 15:59

ahhh :) jenau sowas habe ich gesucht. Habe mich schon gewundert das es in delphi keine vectorArrays (wie in Java) gibbt -_-... so eine TObjectList is schon n tolle sache :D