Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Wie zu Laufzeit Objekt löschen? (https://www.delphipraxis.net/16919-wie-zu-laufzeit-objekt-loeschen.html)

daywalker-dj-k 25. Feb 2004 17:34


Wie zu Laufzeit Objekt löschen?
 
hallo,
ich erzeuge zur laufzeit einige objekte (tedit+ tlabel). diese möchte ich danach allerdings wieder löschen um sie später ggf. wieder zu erstellen (mit dem gleichen namen). wie mache ich das? kleiner denkanstoss dürfte reichen. mir schwirrt irgendwie noch der begriff "destructor" im hinterkopf. muss ich so einen benutzen?

danke
gruß
tkliewe

Alexander 25. Feb 2004 17:40

Re: Wie zu Laufzeit Objekt löschen?
 
Versuche mal:
Delphi-Quellcode:
FreeAndNil(Button1);

Matze 25. Feb 2004 17:41

Re: Wie zu Laufzeit Objekt löschen?
 
Achja, wo wir grad dabei sind :mrgreen:

Delphi-Quellcode:
Button1.Free;
und
Delphi-Quellcode:
Button1.Destroy;
gibt's ja auch, was bewirken dann diese beiden Codeschnipsel?

nailor 25. Feb 2004 18:20

Re: Wie zu Laufzeit Objekt löschen?
 
...dass der jeweilige Knopf "zerstört" wird. Allerdings schlägt Destroy fehl, falls es den Knopf noch garnicht gibt.

[hoffentlich hab ichs nicht verdreht]

Luckie 25. Feb 2004 18:34

Re: Wie zu Laufzeit Objekt löschen?
 
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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz