Form4 wird als Erstes erzeugt, dabei an Application gebunden (siehe Owner) und wird somit zum Hauptformular.
Wird nun das Hauptformular (also die Form4) geschlossen, wird auch die ganze Anwendung beendet.
PS: Es wäre besser, wenn Application erst initialisiert und erst dann verwendet würde.
OK, in Delphi passiert zum Glück nichts in Initialize, aber das muß nicht so bleiben und auch Lazarus reagiert da anders.
Delphi-Quellcode:
Application.Initialize;
Form4 := TForm4.Create(nil);
try
Form4.Show;
Form4.Update;
Application.CreateForm(TForm1, Form1);
Application.Run;
finally
Form4.Free;
end;
Delphi-Quellcode:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Form4 := TForm4.Create(Application);
Form4.Show;
Form4.Update;
Application.Run;
Delphi-Quellcode:
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm4, Form4);
Form4.Show;
Application.Run;
...