Vielleicht liegt es daran, dass ich Formulare selten erst zur Laufzeit erzeuge oder weil ich noch nicht richtig wach bin, aber ich verstehe den tieferen Sinn des Beispiels nicht. Der ist vermutlich schon vorhanden.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Application);
Form2.ShowModal;
Form2.Release;
end;
Form2 ist in Liste der verfügbaren Formulare. Zuerst stelle ich mir die Frage: warum? Wenn der Programmierer es sofort in Create von Form1 erzeugt, dann hätte man es auch direkt einbinden können. Um das Formular anzuzeigen braucht man nicht den Code in Button1Click, das würde auch so gehen. Einfach Form2.ShowModal.
Betrachten wir das anders, Form2 wird nur gelegentlich benötigt. Somit macht der Code in Button1Click Sinn, wozu dann aber der Part in FormCreate?
Und wenn wir schon dabei sind, wieso einmal TForm2.Create(Self) und einmal TForm2.Create(Application)?
//EDIT:
Was ich noch vergessen habe zu sagen: natürlich wird in FormCreate von Form2 etwas erledigt was für Form1 auch wichtig ist, aber kann es es sein dass der Programmierer einfach nur vergessen hat das Fenster danach wieder frei zu geben? Es also keinen tieferen Sinn macht?