Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#14

Re: Loginform soll geschlossen werden bevor MainForm erschei

  Alt 25. Sep 2006, 15:24
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat