Code für Delphi-Anmeldeformular

Das HauptformularBei einer Delphi-Anwendung handelt es sich um ein Formular (Fenster), das als erstes im Hauptteil der Anwendung erstellt wurde. Wenn Sie eine Berechtigung für Ihre Delphi-Anwendung implementieren müssen, möchten Sie möglicherweise ein Anmelde- / Kennwortdialogfeld anzeigen, bevor das Hauptformular erstellt und dem Benutzer angezeigt wird. Kurz gesagt besteht die Idee darin, den Anmeldedialog zu erstellen, anzuzeigen und zu zerstören, bevor das Hauptformular erstellt wird.

Das Delphi-Hauptformular

Wenn ein neues Delphi-Projekt erstellt wird, wird "Form1" automatisch zum Wert der MainForm-Eigenschaft (der globalen Eigenschaft) Anwendung Objekt). Verwenden Sie die Seite Formulare von, um der MainForm-Eigenschaft ein anderes Formular zuzuweisen Projekt> Optionen Dialogfeld zur Entwurfszeit. Wenn das Hauptformular geschlossen wird, wird die Anwendung beendet.

Login / Passwort Dialog

Beginnen wir mit der Erstellung des Hauptformulars der Anwendung. Erstellen Sie ein neues Delphi-Projekt mit einem Formular. Dieses Formular ist von Entwurf das Hauptformular.

Wenn Sie den Namen des Formulars in "TMainForm" ändern und die Unit als "main.pas" speichern, sieht der Quellcode des Projekts folgendermaßen aus (das Projekt wurde als "PasswordApp" gespeichert):

 
 Programm PasswordApp;
Verwendet
Formen,
 Main im 'main.pas' MainForm;
$ R * .res
 
 Start
 Application.Initialize;
 Application.CreateForm (TMainForm, MainForm);
 Application.Run;
 Ende.

Fügen Sie dem Projekt nun ein zweites Formular hinzu. Das zweite hinzugefügte Formular wird standardmäßig in der Liste "Automatisch erstellte Formulare" im Dialogfeld "Projektoptionen" aufgeführt.

Nennen Sie das zweite Formular "TLoginForm" und entfernen Sie es aus der Liste "Automatisch erstellte Formulare". Speichern Sie das Gerät als "login.pas".

Fügen Sie dem Formular eine Beschriftung, eine Bearbeitung und eine Schaltfläche hinzu, gefolgt von einer Klassenmethode zum Erstellen, Anzeigen und Schließen des Anmelde- / Kennwortdialogs. Die Methode "Execute" gibt true zurück, wenn der Benutzer den richtigen Text in das Passwortfeld eingegeben hat.

Hier ist der vollständige Quellcode:

 
 Einheit Anmeldung;
Schnittstelle
 
 Verwendet
 Windows, Nachrichten, SysUtils, Varianten, Klassen,
 Grafiken, Steuerelemente, Formulare, Dialoge, StdCtrls;
 
 Art
 TLoginForm = Klasse(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
procedure LogInButtonClick (Sender: TObject);

publicclass Funktion Execute: boolean;Ende;
Implementierung$ R * .dfm
 
Klassenfunktion TLoginForm.Execute: boolean;anfangen mit TLoginForm.Create (Null) dotry
 Ergebnis: = ShowModal = mrOk;
 schließlich
 Kostenlos;
 Ende, Ende;
Verfahren TLoginForm.LogInButtonClick (Absender: TObject); beginif passwordEdit.Text = 'delphi' dann
 ModalResult: = mrOK
 sonst
 ModalResult: = mrAbort;
 Ende;
Ende. 

Die Execute-Methode erstellt dynamisch eine Instanz der TLoginForm und zeigt sie mit der an ShowModal Methode. ShowModal kehrt nicht zurück, bis das Formular geschlossen wird. Wenn das Formular geschlossen wird, wird der Wert von zurückgegeben ModalResult Eigentum.

Die OnClick-Ereignisbehandlungsroutine "LogInButton" weist der ModalResult-Eigenschaft "mrOk" zu, wenn der Benutzer das richtige Kennwort eingegeben hat (im obigen Beispiel "delphi"). Wenn der Benutzer ein falsches Passwort eingegeben hat, wird ModalResult auf "mrAbort" gesetzt (es kann alles außer "mrNone" sein).

Durch Festlegen eines Werts für die ModalResult-Eigenschaft wird das Formular geschlossen. Execute gibt true zurück, wenn ModalResult gleich "mrOk" ist (wenn der Benutzer das richtige Passwort eingegeben hat).

Erstellen Sie das Hauptformular nicht vor der Anmeldung

Sie müssen jetzt nur noch sicherstellen, dass das Hauptformular nicht erstellt wird, wenn der Benutzer nicht das richtige Kennwort eingegeben hat.

So sollte der Quellcode des Projekts aussehen:

 
 Programm PasswordApp;
Verwendet
Formen,
main in 'main.pas' MainForm,
Login in 'login.pas' LoginForm;
 
 $ R * .res
 
 beginif TLoginForm.Execute dann fange an
 Application.Initialize;
 Application.CreateForm (TMainForm, MainForm);
 Application.Run;
 endelsebegin
 Application.MessageBox ('Sie sind nicht berechtigt, die Anwendung zu verwenden. Das Kennwort lautet "delphi".', 'Kennwortgeschützte Delphi-Anwendung');
 Ende, Ende.

Beachten Sie die Verwendung des if then else -Blocks, um zu bestimmen, ob das Hauptformular erstellt werden soll. Wenn "Execute" false zurückgibt, wird MainForm nicht erstellt und die Anwendung wird ohne Start beendet.