Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Muss man für Formmulare einen Destruktor schreiben? (https://www.delphipraxis.net/79486-muss-man-fuer-formmulare-einen-destruktor-schreiben.html)

Pelzi 23. Okt 2006 16:58


Muss man für Formmulare einen Destruktor schreiben?
 
Hi,
Meine Frage steht eigetnlich schon im titel. Ich habe ein Formular, dass einige Objekte erstellt. Also hab ich mir überlegt, müsste ich doch eigentlich wie bei jeder anderen Klasse einen Destruktor schreiben. Nur wenn ich jetzt diesen konstruktor schreibe, wo wird der dann aufgerufen? Ich ahb mal in einen testweise ein showmessage() geschrieben, das wurde aber beim schließen des Formulars nie sichtbar.
Muss ich also in der OnClose Event self.free aufrufen? Oder befreit Delphi den Speicher ohne das ich irgendetwas machen muss?

Pelzi

DGL-luke 23. Okt 2006 17:02

Re: Muss man für Formmulare einen Destruktor schreiben?
 
Du solltest im OnCloseQuery falls Action=caFree alle Objekte freigeben, die du erzeugt hast.

Bernhard Geyer 23. Okt 2006 17:02

Re: Muss man für Formmulare einen Destruktor schreiben?
 
In einem Formular das per IDE "bedient" wird nimmt man normalerweise das OnClose oder OnCloseQuery oder OnDestroy-Event und schreibt keinen Extra Destruktor.

Und wenn dein Destruktor nicht aufgerufen wird hast Du evtl. Override vergessen.

SirThornberry 23. Okt 2006 19:52

Re: Muss man für Formmulare einen Destruktor schreiben?
 
Zudem kann es sein das dein ShowMessage nicht mehr angezeigt wird weil die Nachrichtenschleife dann wohl schon nicht mehr aktiv ist.

Christian Seehase 23. Okt 2006 20:31

Re: Muss man für Formmulare einen Destruktor schreiben?
 
Moin Pelzi,

kann es sein, dass Du das Formular mit Application.Terminate schliesst?
Dann werden OnClose und OnCloseQuery nicht aufgerufen, OnDestroy hingegen schon.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 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