Hallo Kha..,
was heisst, muss nicht sein ?
Schon klar, dass man sowas vermeiden sollte.
Es ist aber so, dass FreeAndNIL nicht initialisierte Objekte
nicht erkennen kann.
Dafür gibt es ja dass NIL setzen.
Zum "Was sollte man nehmen".
Destroy nie direkt aufrufen.
Zum Freigeben .Free benutzen, falls das Objekt später nicht mehr benutzt wird,
weil es z.B. eine lokale Variable ist.
FreeAndNIL fasst 2 Befehle zusammen (Free and NIL, wer hätte das gedacht
),
macht also Sinn, wenn das Objekt mehrfach verwendet werden kann.
Wir ein Objekt über lokale Variable erzeugt und nicht freigegeben,
bleibt der Speicher belegt, bis das Programm beendet wird (nicht unter
Win9X).
Wenn ich also so eine Prozedur 1 Mio. mal im Programm benutze,
frisst die jedes mal Speicher.
Und irgendwann sind auch 2 Gig weg.
Heiko