![]() |
MDI-Fenster - Erzeugung
Hallo,
bei einer MDI-Anwendung habe ich das Problem, dass die MDI-Fenster in ihrem Create einigen Code abzuarbeiten haben, der ca. 1/2 sec. dauert. Wird nun per Menü-Klick ein solches Fenster erzeugt (deren Windowstate = wsMaximized) dann erscheint das Fenster erst normal im Haupfenster und vergrößert sich dann nach der 1/2 sec. Das sieht sehr unschön aus und ich versuche vergeblich dies abzustellen, allerdings ohne jeglichen Erfolg. Jegliches Repaint bringt nichts, Visible false ist nicht erlaubt, wie kann man das Problem beheben? Ciao Stefan |
AW: MDI-Fenster - Erzeugung
Zitat:
|
AW: MDI-Fenster - Erzeugung
Unelegante Lösung:
Code aus dem Create raus. Dort einen Timer aktivieren (Interval durch probieren ermitteln) und in seinem OnTimerEreignis dann den aus dem Create entfernten Code ausführen. Mach ich so in der Art bei Programmen, deren Create ... beim Programmstart sonst zulange dauern würde (z. B. wenn dort 'ne Datenbankverbindung aufgebaut werden soll, diverse Konfigurationsdateien zu lesen sind ...). Eventuell kannst Du sowas ja auch nutzen. Diese Krücke aber bitte erst in Betracht ziehen, wenn Uwes Rat nicht funktioniert. |
AW: MDI-Fenster - Erzeugung
Sowas Langes nicht im Create machen.
@Uwe Raabe: MDI-Fenster sind immer sichtbar, drum sind sie im Create immer schon sichtbar. (man kann sie maximal minimieren) Visible=False ist wirklich nicht erlaubt. |
AW: MDI-Fenster - Erzeugung
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Delphi-Quellcode:
dann öffnet sich das Fenster nach zwei Sekunden in voller Größe.
Sleep(2000);
WindowState := wsMaximized; Es ist also offenbar kein generelles Problem, sondern wird durch den aktuell verwendeten Code oder irgendwelche Einstellungen verursacht. |
AW: MDI-Fenster - Erzeugung
OnCreate/FormCreate wird erst im AfterConsructor ausgelöst, also lange nachdem die Form schon erstellt wurde. (genug Zeit für viel Spaß)
Da MDI-Childs nicht invisible sein dürfen, wird die Form ab dem Inherited des Constructors potentiell sichtbar. Du hast wohl noch Glück, dass du nichts auf der Form hast, was auf das FormHandle zugreift oder einen Repaint auslöst, schon während des Ladens, und damit die Anzeige aktualisiert, bzw. das interne Windows-Form (HWND) sofort erstellt. |
AW: MDI-Fenster - Erzeugung
Klingt nicht gut, da werde ich doch mal Frames ins Auge fassen...
Ciao Stefan |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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-2025 by Thomas Breitkreuz