Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi FormActivate wird mehrfach ausgeführt (https://www.delphipraxis.net/214249-formactivate-wird-mehrfach-ausgefuehrt.html)

Frickler 12. Dez 2023 13:31

AW: FormActivate wird mehrfach ausgeführt
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1530718)
Ich würde sogar so weit gehen zu behaupten, dass eine Funktionalität, die nur beim ersten Activate ausgeführt werden soll, vielleicht gar nicht im richtigen Event platziert ist. Falls doch, wäre der bereits erwähnte Ansatz mit einem Flag wesentlich aussagekräftiger und auch flexibler.

Will man etwa die Aktion ausführen, während das Formular bereits angezeigt wird, dann bietet sich Activate an (mit einer privaten Boolean Variable "FirstActivation" o.ä. dafür sorgen, dass der Code nur beim ersten Activate ausgeführt wird). Oder man benutzt ein eigenes Event "AfterShow" oder so, und triggert das per PostMessage als letzte Anweisung in FormShow.

himitsu 12. Dez 2023 13:32

AW: FormActivate wird mehrfach ausgeführt
 
Die Form-DFM wird standardmäßig im Constructor geladen.
OnCreate wird im AfterConstruction aufgerufen. (ganz früher, bzw. bis vor Kurzem, als es noch OldCreateOrder=True gab, da war OnCreate am Ende des Constructors)

Wenn man etwas hat, das sich unbedingt ans FormHandle hängen muß, dann besser CreateWnd oder CreateWindowHandle überschreiben und dort rein.
Während die Form-Instanz existiert, kann das Handle (WindowControl) freigegeben werden. (z.B. wenn man StayOnTop ändert)

kdf 12. Dez 2023 19:08

AW: FormActivate wird mehrfach ausgeführt
 
Mit der Boolschen Variablen dafür sorgen, dass Activate nur einmal ausgeführt wird, funktioniert soweit gut.

K.-D.


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