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?