Einzelnen Beitrag anzeigen

moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Application.CreateForm erst beim Form.Show ?

  Alt 15. Apr 2008, 15:39
Moins ihr !

Wir haben in unsere Anwendung eine ganze Latte an Formularen. Alle diese Formulare werden ja beim Anwendungsstart initialisiert mittels Application.CreateForm.

Nun brauchen wir aber nicht alle Forumlare gleich nach dem Start (eigentlich nur die wenigsten).

Ich habe also mal folgendes versucht ... Eine Anwendung mit 2 Formularen. Auf Form1 einen Button der mittels Show Form2 anzeigt.

Die Projektdatei dazu sieht normal so aus:
Delphi-Quellcode:
  Application.Initialize;
Application.MainFormOnTaskbar := True;
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TFormTest, FormTest);
Application.Run;
Nun habe ich mal das Application.CreateForm(TFormTest, FormTest); auskommentiert und beim Buttonevent folgendes gemacht:
Delphi-Quellcode:
procedure TMainForm.ButtonClick(Sender: TObject);
begin
  Application.CreateForm(TFormTest, FormTest);
  FormTest.Show;
end;
Funktionieren tut es. Aber ich frage mich doch ob da mitunter irgendwas gegen sprechen könnte. Das evtl. Zugriffe auf das Formular nicht klappen weil es mitunter noch nicht erstellt wurde ist mir klar. Aber könnte man das im Prinzip so machen?

Würde man auf diese Weise RAM einsparen weil die Forulare nur noch dann erstellt werden wenn sie auch gebraucht werden?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat