So erstellen Sie ein Delphi-Anmeldeformular

Die Hauptform einer Delphi-Anwendung ist ein Formular (Fenster), das als erstes im Hauptteil der Anwendung erstellt wird. Wenn Sie eine Autorisierung für Ihre Delphi-Anwendung implementieren müssen, möchten Sie möglicherweise einen Anmelde- / Kennwortdialog anzeigen, bevor das Hauptformular erstellt und dem Benutzer angezeigt wird. Kurz gesagt, die Idee ist, den "Anmeldedialog" zu erstellen, anzuzeigen und zu zerstören, bevor das Hauptformular erstellt wird.

Die Delphi MainForm

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.

Anmelde- / Passwortdialog

Beginnen wir mit der Erstellung der Hauptform der Anwendung. Erstellen Sie ein neues Delphi-Projekt mit einem Formular. Dieses Formular ist von Natur aus das Hauptformular.

Wenn Sie den Namen des Formulars in "TMainForm" ändern und das Gerät als "main.pas" speichern, wird die Quellcode des Projekts sieht so aus (das Projekt wurde als "PasswordApp" gespeichert):

Programm PasswordApp;
Verwendet
Formen,
 Main im 'main.pas' {MainForm};
{$ R * .res}
 Start
 Anwendung. Initialisieren;
 Anwendung. CreateForm (TMainForm, MainForm);
 Anwendung. Lauf;
 Ende.

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

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

Fügen Sie dem Formular eine Beschriftung, eine Bearbeitung und eine Schaltfläche hinzu, gefolgt von a 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 Kennwortfeld 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;
Prozedur LogInButtonClick (Absender: TObject);

publicclass Funktion Ausführen: boolean;Ende;
Implementierung{$ R * .dfm}
Klassenfunktion TLoginForm. Ausführen: boolean;anfangen mit TLoginForm. Erstellen(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 dynamisch erstellt eine Instanz der TLoginForm und zeigt sie mit der an ShowModal Methode. ShowModal kehrt erst zurück, wenn das Formular geschlossen wird. Wenn das Formular geschlossen wird, wird der Wert von zurückgegeben ModalResult Eigentum.

Der OnClick-Ereignishandler "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 angegeben hat, wird ModalResult auf "mrAbort" gesetzt (es kann alles andere als "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 MainForm nicht vor der Anmeldung

Sie müssen nur noch sicherstellen, dass das Hauptformular nicht erstellt wird, wenn der Benutzer das richtige Kennwort nicht angegeben 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. Ausführen dann fang an
 Anwendung. Initialisieren;
 Anwendung. CreateForm (TMainForm, MainForm);
 Anwendung. Lauf;
 endelsebegin
 Anwendung. MessageBox ('Sie sind nicht berechtigt, die Anwendung zu verwenden. Das Passwort lautet "delphi". ',' Passwortgeschützte Delphi-Anwendung ');
 Ende; Ende.

Beachten Sie die Verwendung der wenn dann sonst Block, 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.

TikTok viewer