Autor Beitrag
der_ich
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 20



BeitragVerfasst: Sa 07.01.06 22:47 
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 noebis.pi-noe.ac.at/delphi/kapitel10.htm nicht erklären

wäre für jede hilfe dankbar
DaRkFiRe
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 526

WinXP Home & Professional
C, C++, Delphi
BeitragVerfasst: 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 ... )

_________________
Lang ist der Weg durch Lehren - kurz und wirksam durch Beispiele! Seneca
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: 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:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
...
Application.Initialize;
Application.CreateForm (TMyLoginForm, MyLoginForm);
...
Application.Run;
End;

Und TMyLoginForm hat ein Button 'Login'...

ausblenden 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.

_________________
Na denn, dann. Bis dann, denn.