Zitat von
tn249:
wie gesagt. evtl. ist das ein overkill aber es funktioniert.
Absolut falsch: Das ist kein Overkill sondern der richtige Weg: Genau so wie Du es beschrieben hast macht man das.
Und zum ersten Beitrag: Setzt Du Pointer auf nil, dann hast Du noch nicht den Speicherbereich auf den die Pointer vorher gezeigt haben frei gegeben. Aber arbeite einfach nicht explizit mit Pointern - Delphi macht das ja implizit sobald Du eine Klasse definierst. Frei geben kannst Du Klasseninstanzen indem Du deren Free-Methode aufrufst. Dabei musst Du aufpassen, dass Du nichts doppelt frei gibst. Hast Du beispielsweise das von tn249 erwähnte OwnsObjects-Feld auf True gesetzt, dann gibt die Liste alle Elemente frei, sobald sie selbst frei gegeben wird. D.h. du darfst diese nicht vorher selbst frei geben.