Cum se face un formular de conectare Delphi

Aplicația MainFormof a Delphi este un formular (fereastră) care este primul creat în corpul principal al aplicației. Dacă aveți nevoie să implementați un fel de autorizare pentru aplicația dvs. Delphi, poate doriți să afișați un dialog de conectare / parolă înainte ca formularul principal să fie creat și afișat utilizatorului. Pe scurt, ideea este de a crea, afișa și distruge dialogul „autentificare” înainte de a crea formularul principal.

MainForm Delphi

Când este creat un nou proiect Delphi, "Form1" devine automat valoarea proprietății MainForm (a globalului) cerere obiect). Pentru a atribui un formular diferit proprietății MainForm, utilizați pagina Formulare din Proiect> Opțiuni caseta de dialog la momentul proiectării. Când se închide formularul principal, cererea se încheie.

Dialog autentificare / parolă

Să începem prin crearea formei principale a cererii. Creați un nou proiect Delphi care conține un formular. Această formă este, prin design, forma principală.

Dacă schimbați numele formularului în „TMainForm” și salvați unitatea ca „main.pas”,

instagram viewer
codul sursă al proiectului arată așa (proiectul a fost salvat ca „PasswordApp”):

program PasswordApp;
utilizări
Formulare,
 principal în 'main.pas' {MainForm};
{$ R * .res}
 începe
 Aplicație. Inițializare;
 Aplicație. CreateForm (TMainForm, MainForm);
 Aplicație. Alerga;
 Sfârșit.

Acum, adăugați un al doilea formular la proiect. După proiectare, cel de-al doilea formular adăugat este listat în lista „Creare automată a formularelor” din dialogul Opțiuni de proiect.

Denumiți cel de-al doilea formular „TLoginForm” și eliminați-l din lista „Formulare automate de creare”. Salvați unitatea ca „login.pas”.

Adăugați o etichetă, Editare și buton pe formular, urmată de a metoda clasei pentru a crea, arăta și închide dialogul de conectare / parolă. Metoda „Execute” returnează adevărat dacă utilizatorul a introdus textul corect în caseta de parole.

Iată codul sursă complet:

unitate Autentificare;
interfață
 utilizări
 Windows, mesaje, SysUtils, variante, clase,
 Grafica, Controale, Formulare, Dialoguri, StdCtrls;
 tip
 TLoginForm = clasă(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
procedura LogInButtonClick (Expeditor: TObject);

funcția publicclass Executa: boolean;Sfârșit;
punerea în aplicare{$ R * .dfm}
funcția clasei TLoginForm. Executa: boolean;începe cu TLoginForm. Crea(zero) dotry
 Rezultat: = ShowModal = mrOk;
 in cele din urma
 Liber;
 Sfârșit; Sfârșit;
procedură TLoginForm. LogInButtonClick (Expeditor: TObject); beginif passwordEdit. Text = 'delphi' apoi
 ModalResult: = mrOK
 altfel
 ModalResult: = mrAbort;
 Sfârșit;
Sfârșit. 

Metoda Execute creează dinamic o instanță a TLoginForm și o afișează folosind ShowModal metodă. ShowModal nu revine până la închiderea formularului. Când formularul se închide, returnează valoarea ModalResult proprietate.

Manipulatorul de evenimente „LogInButton” OnClick atribuie „mrOk” proprietății ModalResult dacă utilizatorul a introdus parola corectă (care este „delphi” în exemplul de mai sus). Dacă utilizatorul a furnizat o parolă greșită, ModalResult este setat pe „mrAbort” (poate fi orice, cu excepția „mrNone”).

Setarea unei valori pentru proprietatea ModalResult închide formularul. Execute returnează true dacă ModalResult este egal cu "mrOk" (dacă utilizatorul a introdus parola corectă).

Nu creați MainForm înainte de autentificare

Acum trebuie doar să vă asigurați că formularul principal nu este creat dacă utilizatorul nu a furnizat parola corectă.

Iată cum ar trebui să arate codul sursă al proiectului:

 program PasswordApp;
utilizări
Formulare,
main în 'main.pas' {MainForm},
conectați-vă în 'login.pas' {LoginForm};
 {$ R * .res}
 beginif TLoginForm. A executa thenbegin
 Aplicație. Inițializare;
 Aplicație. CreateForm (TMainForm, MainForm);
 Aplicație. Alerga;
 endelsebegin
 Aplicație. MessageBox („Nu sunteți autorizat să utilizați aplicația. Parola este „delphi”. ',' Aplicație Delphi protejată prin parolă ');
 Sfârșit; Sfârșit.

Rețineți utilizarea dacă altfel bloc pentru a determina dacă forma principală trebuie creată. Dacă „Execute” returnează fals, MainForm nu este creat și aplicația se încheie fără a porni.