Ich kenn das Problem. Weil ich Dir erstmal gar nicht geglaubt habe, hab ich also einen Drei-Zeiler geschrieben, mit der Passwortabfrage im OnCreate. Dann darf aber kein anderes Formular automatisch instantiiert werden.
Dr Projekt-Quelltext sieht also so aus:
Delphi-Quellcode:
Begin
Application.Initialize;
Application.CreateForm(TMyMainForm, MyMainForm);
Application.Run
End.
Und die MyMainForm wie oben beschrieben. Dann kann ich mich einloggen (oder nicht).
Delphi-Quellcode:
Procedure TMyMainForm.FormCreate (Sender : TObject);
Begin
If InputBox('Login','Benutzername','') <> 'MuTzE' Then
Application.Terminate
Else Begin
// Initialize application's datamodules, forms etc.
End;
End;
wichtig ist, das das 'Application.Terminate' ja nicht sofort aufhört, sondern nur eine WM_QUIT Message in die Messagequeue schiebt. Das Application.Run fängt dann an, die Messages zu verarbeiten. Mehr oder minder früh wird dann das WM_QUIT entdeckt. Deshalb ist es
imho wichtig, wirklich nur die eine Form im Hauptprogramm der Anwendung zu instantiieren.