![]() |
Fenster nach Programmstart öffnen?
Hallo,
Hab ein kleines Problem: Wie kann ich ein zweites Formular im OnCreate-Ereignis des Hauptformular öffnen? Bei mir kommt da immer eine Fehlermeldung. Folgenden Code verwende ich:
Delphi-Quellcode:
Und folgende Fehlermeldung erscheint immer:
procedure TForm1.FormCreate(Sender: TObject);
begin form2.showmodal; end; Zitat:
MCXSC |
Re: Fenster nach Programmstart öffnen?
Bitte erstell für jede Frage einen sepaaraten Thread, sonst geht hier alles durcheinander. Danke.
|
Re: Fenster nach Programmstart öffnen?
Und zusätzlich solltest du immer Quellcode angeben, den du schon hast, die Fehlermeldung sowieso und auch die Zeile, in der ein Fehler auftritt etc. Damit verhinderst du unnötiges Nachfragen.
|
Re: Fenster nach Programmstart öffnen?
Zitat:
das Fehler kommt weil zu dem Zeitpunkt wo Du Form2.ShowModal aufrufst dein Instanz von TForm2 noch nicht erzeugt wurde. In deiner Projekt.dpr werden die Forms der reihe nach erzeugt. Da Du aber auf das .OnCreate der TForm1 reagierst ist deine Instanz von TForm2 natürlich noch nicht erzeugt
Delphi-Quellcode:
Am einfachsten kannst Du das umgehen in dem Du deinen Code nicht in das OnCreate schreibst sondern in das OnActivate der Form
begin
Application.Initialize; Application.CreateForm(TForm1, Form1); // Form1 wird erzeugt und das OnCreate von Form1 wird aufgerufen. Application.CreateForm(TForm2, Form2); // Erst DANACH wird Form2 erzeugt. Application.Run; end.
Delphi-Quellcode:
procedure TForm1.FormActivate(Sender: TObject);
begin Form2.ShowModal; end; |
Re: Fenster nach Programmstart öffnen?
oder Du nimmst Form2 aus der Liste der automatisch erzeugten Forms und nutzt folgenden Code:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Application.CreateForm(TForm2, Form2); form2.showmodal; Form2.Free; end; |
Re: Fenster nach Programmstart öffnen?
Ich muss, auch wenn es schon lange her ist, nochmal was zum gleichen Thema (deswegen kein neuer Thread, da es eigentlich die gleiche Frage ist, nachfragen:
Wie ist es denn möglich, einen MessageDlg im OnCreate Ereignis von Form1 zu öffnen? Da bekomme ich nämlich ebenso eine Fehlermeldung... |
Re: Fenster nach Programmstart öffnen?
Da könnte dir die VCL einen Streich spielen. Wie ist es denn mit einer MessageBox?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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