Ako vytvoriť prihlasovací formulár Delphi

Aplikácia MainFormof a Delphi je formulár (okno), ktorý je prvým vytvoreným v hlavnej časti aplikácie. Ak potrebujete implementovať nejaký druh autorizácie pre svoju aplikáciu Delphi, mali by ste si pred vytvorením a zobrazením hlavného formulára zobraziť dialógové okno na prihlásenie / heslo. Skrátka ide o vytvorenie, zobrazenie a zničenie dialógového okna „Prihlásenie“ pred vytvorením hlavného formulára.

Delphi MainForm

Keď sa vytvorí nový projekt Delphi, "Form1" sa automaticky stane hodnotou vlastnosti MainForm (globálnej) prihláška objekt). Ak chcete priradiť iný formulár k vlastnosti MainForm, použite stránku Formuláre Projekt> Možnosti dialógové okno v čase návrhu. Po zatvorení hlavného formulára sa aplikácia ukončí.

Dialógové okno pre prihlásenie / heslo

Začnime vytvorením hlavnej formy aplikácie. Vytvorte nový projekt Delphi obsahujúci jeden formulár. Táto forma je zámerne hlavnou formou.

Ak zmeníte názov formulára na "TMainForm" a jednotku uložíte ako "main.pas", zdrojový kód projektu vyzerá takto (projekt bol uložený ako „PasswordApp“):

instagram viewer
program PasswordApp;
použitie
formy,
 Hlavná v 'main.pas' {MainForm};
{$ R * .res}
 začať
 Aplikácie. inicializácia;
 Aplikácie. CreateForm (TMainForm, MainForm);
 Aplikácie. bežať;
 koniec.

Teraz do projektu pridajte druhý formulár. Podľa návrhu sa druhý pridaný formulár zobrazí v zozname „Automatické vytváranie formulárov“ v dialógovom okne Možnosti projektu.

Pomenujte druhý formulár „TLoginForm“ a odstráňte ho zo zoznamu „Automatické vytváranie formulárov“. Uložte jednotku ako „login.pas“.

Pridajte do formulára menovku, upravte a stlačte tlačidlo a metóda triedy na vytvorenie, zobrazenie a zatvorenie dialógového okna login / password. Metóda „Vykonať“ sa vráti true, ak používateľ do poľa pre heslo zadal správny text.

Tu je celý zdrojový kód:

jednotka Prihlásiť sa;
rozhranie
 použitie
 Windows, Správy, SysUtils, Varianty, Triedy,
 Grafika, ovládacie prvky, formuláre, dialógy, StdCtrls;
 typ
 TLoginForm = trieda(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
postup LogInButtonClick (odosielateľ: TObject);

funkcia verejnej triedy Vykonať: boolean;koniec;
uskutočnenie{$ R * .dfm}
triedna funkcia TLoginForm. Vykonať: boolean;začať s TLoginForm. vytvorenie (nula) ukojím
 Výsledok: = ShowModal = mrOk;
 konečne
 Zadarmo;
 koniec; koniec;
procedúra TLoginForm. LogInButtonClick (Sender: TObject); Begif passwordEdit. Text = 'delphi' potom
 ModalResult: = mrOK
 inak
 ModalResult: = mrAbort;
 koniec;
koniec. 

Metóda Execute dynamicky vytvára inštancia TLoginForm a zobrazí ju pomocou ShowModal metóda. ShowModal sa nevráti, kým sa formulár nezavrie. Po zatvorení formulára vráti hodnotu ModalResult nehnuteľnosť.

Obslužný program udalostí „LogInButton“ OnClick priraďuje vlastníkovi ModalResult „mrOk“, ak používateľ zadal správne heslo (v uvedenom príklade je „delphi“). Ak používateľ zadal nesprávne heslo, ModalResult je nastavený na „mrAbort“ (môže to byť čokoľvek okrem „mrNone“).

Nastavením hodnoty na vlastnosť ModalResult sa formulár uzavrie. Execute vráti true, ak sa ModalResult rovná "mrOk" (ak užívateľ zadal správne heslo).

Nevytvárajte MainForm pred prihlásením

Teraz musíte iba skontrolovať, či sa hlavný formulár nevytvoril, ak používateľ neposkytol správne heslo.

Ako by mal vyzerať zdrojový kód projektu:

 program PasswordApp;
použitie
formy,
main in 'main.pas' {MainForm},
login in 'login.pas' {LoginForm};
 {$ R * .res}
 beginif TLoginForm. popraviť thenbegin
 Aplikácie. inicializácia;
 Aplikácie. CreateForm (TMainForm, MainForm);
 Aplikácie. bežať;
 endelsebegin
 Aplikácie. MessageBox („Nemáte oprávnenie používať aplikáciu. Heslo je „delphi“. ', „Aplikácia Delphi chránená heslom“);
 koniec; koniec.

Všimnite si použitie ak potom inde blok, aby ste určili, či sa má vytvoriť hlavný formulár. Ak "Execute" vráti false, MainForm sa nevytvorí a aplikácia sa ukončí bez spustenia.