Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   eigenartiges Verhalten bei Onclose eines Formulars (https://www.delphipraxis.net/213873-eigenartiges-verhalten-bei-onclose-eines-formulars.html)

SusiT 12. Okt 2023 20:22

AW: eigenartiges Verhalten bei Onclose eines Formulars
 
Natürlich hattet Ihr Recht und ich wäre der Verlierer bei der Wette gewesen:P


Ich habe es nun tatsächlich so simple wie möglich aufgebaut.

In FormClose:

Action := caFree;
FormVariable := nil;

und zusätzlich werden in FormClose alle Variablen und Speicherobjekte wieder freigegeben.


Besten Dank und vielen Dank für die rege Teilnahme beim großzügigen Verteilen von freiem Wissen :thumb:

himitsu 12. Okt 2023 20:56

AW: eigenartiges Verhalten bei Onclose eines Formulars
 
FormClose?

Man gibt etwas an der Gegenstelle dessen frei, wo es erstellt wurde.

In OnClose also das, was im OnShow erstellt wurde. Hast du es wirklich dort erstellt?

PS: OnCreate->OnDestroy oder Create->Destroy aka Constructor->Destructor usw.

SusiT 12. Okt 2023 21:20

AW: eigenartiges Verhalten bei Onclose eines Formulars
 
Diese Konvention hatte ich bis dato noch nicht verinnerlicht.
Macht aber auch Sinn und werde das optimieren.8-)

Dann muss die globale Formvariable aber auch später auf nil gesetzt werden.

himitsu 12. Okt 2023 21:56

AW: eigenartiges Verhalten bei Onclose eines Formulars
 
Stell dir einfach mal zwei Fälle vor
* die Form erstellen und zwei Mal anzeigen (Show+HideClose oder ShowModal)
* die Form erstellen und garnicht anzeigen, sondern direkt wieder freigeben

1a. Beim zweiten Mal knallt's, weil die Form weg ist
1b. Beim zweiten Mal knallt's, weil im OnClose freigegeben wurde (natürlich ohne caFree, sondern mit caHide)
2. Es wird nie freigegeben, weil OnClose garnicht aufgerufen wird

DenkDirNix 13. Okt 2023 06:31

AW: eigenartiges Verhalten bei Onclose eines Formulars
 
Hm,
ich habe bisher OnHide als Gegenpart zum OnShow betrachtet.
Siehe hier: https://www.delphipraxis.net/156-abl...ormulares.html

jaenicke 13. Okt 2023 09:13

AW: eigenartiges Verhalten bei Onclose eines Formulars
 
Zitat:

Zitat von SusiT (Beitrag 1528029)
Dann muss die globale Formvariable aber auch später auf nil gesetzt werden.

Am besten setzt man diese im OnDestroy auf nil, denn danach existiert ja das Formular auch nicht mehr. Innerhalb des Formulars selbst sollte diese nie benutzt werden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:15 Uhr.
Seite 2 von 2     12   

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