Registriert seit: 29. Mai 2002
37.621 Beiträge
Delphi 2006 Professional
|
Re: Wie zu Laufzeit Objekt löschen?
25. Feb 2004, 19:34
Free prüft, ob es das Objekt gibt und ruft dann den Destruktor des Objektes (Destroy) auf. Gibt es das Objekt gar nicht, wird der Destruktor nicht mehr aufgerufen. Deswegen sollte man immer Free nehmen statt Destroy direkt aufzurufen.
Noch wichtig: Hat man ein Objekt zerstört, existiert es im Speicher nicht mehr, der Zeiger zeigt aber immer noch auf die Adresse im Speicher wesswegen Assign immer noch True liefert, ein Zugriff aber fehlschlägt, da das Objekt ja nicht mehr existiert. Deswegen sollte man entweder FreeAndNil zum Freigeben nutzen oder den Zeiger explizit auf nil setzen.
Michael Ein Teil meines Codes würde euch verunsichern.
|