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”,
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.