Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi warum geht showModal nicht bei oncreate? (https://www.delphipraxis.net/178900-warum-geht-showmodal-nicht-bei-oncreate.html)

Erutan 3. Feb 2014 07:00

warum geht showModal nicht bei oncreate?
 
Hallo,

ich versuche seit einigen Tagen schon ein zweites, modales Fenster beim Öffnen des Programmes anzeigen zu lassen. Später soll es dann noch eine Option geben, das via Häkchen abzuschalten aber jetzt ist erst einmal nur wichtig, daß es sich überhaupt öffnet.

Es geht nämlich offenbar nicht, die Anweisung

Delphi-Quellcode:
Form2.ShowModal;
in das onCreate-Ereignis zu setzen. Wenn ich das tue, bekomme ich beim Kompilieren eine Fehlermeldung. Packe ich die Anweisung dagegen in ein onClick-Ereignis eines Buttons, ist alles okay.

Gibt's da einen Trick?

Furtbichler 3. Feb 2014 07:03

AW: warum geht showModal nicht bei oncreate?
 
Wie genau sieht der Fehler aus?

Welchen Wert hat denn 'Form2'? Setze mal einen Breakpoint auf die Stelle, starte dein Programm neu und geh mit dem Cursor rauf.

Aphton 3. Feb 2014 07:06

AW: warum geht showModal nicht bei oncreate?
 
Formulare werden in der Hauptdatei hintereinander für die Application Instanz instanziert. Je nachdem, in welcher Reihenfolge du die Formulare hast, werden sie hintereinander instanziert - in deinem Fall vermute ich das hier:
Form1, dann Form2
Dadurch, dass Form2 in OnCreate Ereignis der Form1 noch nicht existiert, führt das zu einer AV!
Besser ist es, die Form2 aber der Instanzierung per ShowModal anzuzeigen anstatt es im OnCreate Event der ersten Form zu tun!
Siehe dir dazu die Hauptdatei an! (.dpr)

Jasocul 3. Feb 2014 07:11

AW: warum geht showModal nicht bei oncreate?
 
Offensichtlicher Fehler, auch wenn hier der Fehler nicht hingeschrieben wurde.:roll:

Im OnCreate der Hauptform (alo beim Programmstart) ist Form2 noch gar nicht erzeugt worden. Entweder du veränderst die Erstellungsreihenfolge oder lässt Form2 gar nicht automatisch erzeugen und machst das dann selbst im OnCreate deiner Hauptform.

Im OnCreate müsste dann etwas in dieser Art stehen:
Delphi-Quellcode:
Form2 := TForm2.Create(self);
Form2.ShowModal;
EDIT: zu langsam

Erutan 3. Feb 2014 07:16

AW: warum geht showModal nicht bei oncreate?
 
Wowww, schnelle Antworten :shock:

Vielen Dank. Hab's kapiert.

Viele Grüße und vielen Dank


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