Ich mache es immer so:
Der 'Login-Dialog' ist das Hauptformular der Anwendung
Da ist ein OK und ein Cancel-Knopf drauf.
Delphi-Quellcode:
Procedure TmyLogin.btOkClick (Sender : TObject);
Var
fMain : TMainForm;
Begin
If LoginOk Then Begin
Application.CreateForm (fMain, TMainForm);
fMain.ShowModal;
fMain.Release;
End;
End;
Das ist sauber und funktioniert ohne kranke Terminate oder Halt Aufrufe.