Ich hab es auch mal so gelöst, das das eigentliche Hauptformular der Anwendung gar nicht automatisch erzeugt wird. Statt dessen ist das Loginformulat das Hauptformular. Wenn das Login korrekt ist, dann wird die Hauptanwendung (also das Formular) einfach gestartet. Der Vorteil ist, das beim Beenden des Hauptformulars wieder das Loginformular sichtbar wird (kann man auch unterdrücken). Aber eventuell ist das auch erwünscht.
Der Sourcecode des Projektes ist also so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| ... Application.Initialize; Application.CreateForm (TMyLoginForm, MyLoginForm); ... Application.Run; End; |
Und TMyLoginForm hat ein Button 'Login'...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Procedure TMyLoginForm.btLoginClick (Sender : TObject); Begin If LoginOk Then Begin If not Assigned (MainApplication) Then Application.CreateForm (TMainApplication, MainApplication); Self.Hide; MainApplication.ShowModal; Self.Show; End; End; |
Der Vorteil gegenüber der OnActivate-Methode ist auch, das man im Loginformular die Anwendung beenden kann, Einstellungen anbieten, oder sonstwas machen kann.
Na denn, dann. Bis dann, denn.