![]() |
Re: TForm Freigeben
Zitat:
Ich habe es auch gerade mal mit der normalen Klasse TForm getestet. Hier tritt genau das gleiche Phänomen auf. Ich dachte erst das es an der neuen Klasse liegt aber dem ist nicht so. |
Re: TForm Freigeben
PS: es ist egal ob das Fenster über Application.CreateForm(TForm1, Form1) oder Form1 := TForm1.Create(); erzeugt wird.
Die Frage ist nur wir kann ich nach dem Schließen des Fensters die Variable Form1 wider auf NIL setzen? |
Re: TForm Freigeben
Aus der Klasse heraus nicht.
|
Re: TForm Freigeben
Zitat:
Aber wann könnte ich dann die Variable Form1 wieder auf nil setzten? |
Re: TForm Freigeben
Die Klasse kennt die Referenzvariablen, die zur Laufzeit existieren ja nicht.
|
Re: TForm Freigeben
AHHH :idea: :idea: jetzt hab ich verstanden wo das eigentliche Problem liegt.
Gibt es eine möglichkeit die die Referenzvariablen zu ermitteln? Wer ruft eigentichlich den destructor nach dem FormClose auf? |
Re: TForm Freigeben
Die Methode Close
|
Re: TForm Freigeben
und warum rufst du anstatt Form1.close nicht freeandnil(form1) auf? Da wird die Form doch auch vorher geschlossen und deine referenz ist nil.
|
Re: TForm Freigeben
Gibt es die möglichkeit sich eine Referenzvariablen zu speichern?
bsp. dem Constructor übergeben : CreatePCB(AOwner : TComponent; Var Reference); Diese Referenz im Object speichern und bei Destroy diese Referenz auf NIL setzten? geht sowas? |
Re: TForm Freigeben
Jein, nur unter gewissen Umständen. Aber das ergibt eine schöne Fehlerquelle, wenn diese Umstände nicht eingehalten werden. Und das ist meist der Fall.
==> Nein Edit: Von wo wird denn das Fenster geschlossen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:48 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz