Entwickler-Ecke

Algorithmen, Optimierung und Assembler - passwortabfrage bei programmstart


der_ich - Sa 07.01.06 22:47
Titel: passwortabfrage bei programmstart
hi,

ich wollte ein programm schreiben, dass beim öffnen ein passwort abfragt.
das problem dabei ist, dass man ein OnActivate-ereignis nutzen muss (hab ich gelesen) und nicht weiß was das ist und wie das geht da ich erst vor kurzem von pascal auf delphi umgestiegen bin.

ich kann mir bisher auch den quelltext von http://noebis.pi-noe.ac.at/delphi/kapitel10.htm nicht erklären

wäre für jede hilfe dankbar


DaRkFiRe - Sa 07.01.06 23:10

Wenn das wirksam geschützt werden soll, macht man das vor dem ersten Createform mit einer separaten Form (Form2 := TForm2.Create; Form2.ShowModal; if ... )


alzaimar - So 08.01.06 00:01

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;
    // Entweder Self.Close oder eben 
   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.