Computerwissenschaften

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 (des globalen Anwendungsobjekts ). Um der MainForm-Eigenschaft ein anderes Formular zuzuweisen, verwenden Sie zur Entwurfszeit die Seite Formulare im Dialogfeld Projekt> Optionen . 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, sieht der Quellcode des Projekts folgendermaßen aus (das Projekt wurde als „PasswordApp“ gespeichert):


Programm PasswordApp;
Verwendet
Formen,
main in 'main.pas' {MainForm};
{$ R * .res}

 Start
Application.Initialize;
Application.CreateForm (TMainForm, MainForm);
Application.Run;
 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 Bezeichnung, 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 Kennwortfeld eingegeben hat.

Hier ist der vollständige Quellcode:


Login der Einheit ;
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 function Execute: boolean; Ende ;
Implementierung {$ R * .dfm}

Klassenfunktion TLoginForm.Execute: boolean; Beginnen Sie mit TLoginForm.Create ( nil ) dotry
Ergebnis:=ShowModal=mrOk;
 endlich
Frei;
 Ende; Ende;
Prozedur 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 ShowModal- Methode an. ShowModal kehrt erst zurück, wenn das Formular geschlossen wird. Wenn das Formular geschlossen wird, wird der Wert der ModalResult- Eigenschaft zurückgegeben.

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.Execute thenbegin
Application.Initialize;
Application.CreateForm (TMainForm, MainForm);
Application.Run;
 endelsebegin
Application.MessageBox ('Sie sind nicht berechtigt, die Anwendung zu verwenden. Das Passwort lautet "delphi".', 'Passwortgeschützte Delphi-Anwendung');
 Ende; Ende.

Beachten Sie die Verwendung des Blocks if then else, 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.

Similar Posts

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.