Kako napraviti obrazac za prijavu u Delphi

MainFormof a Delphi aplikacija je obrazac (prozor) koji je prvi kreiran u glavnom tijelu aplikacije. Ako trebate implementirati neku vrstu autorizacije za svoju aplikaciju Delphi, možda biste trebali prikazati dijalog za prijavu / lozinku prije nego što se glavni obrazac stvori i prikaže korisniku. Ukratko, ideja je stvoriti, prikazati i uništiti dijalog "prijava" prije stvaranja glavnog obrasca.

Delphi MainForm

Kad se stvori novi projekt Delphi, "Form1" automatski postaje vrijednost svojstva MainForm (od globalnog primjena objekt). Za dodjeljivanje drugog oblika svojstvu MainForm koristite stranicu Forms na Projekt> Opcije dijaloški okvir u vrijeme dizajniranja. Kad se glavni obrazac zatvori, prijava se prekida.

Dijalog za prijavu / lozinku

Započnimo s stvaranjem glavnog oblika aplikacije. Izradite novi Delphi projekt koji sadrži jedan obrazac. Ovaj je oblik, prema dizajnu, glavni oblik.

Ako promijenite naziv obrasca u "TMainForm" i spremite jedinicu kao "main.pas", oznaka " izvorni kod projekta izgleda ovako (projekt je spremljen kao "PasswordApp"):

instagram viewer
program PasswordApp;
namjene
obrasci,
 glavni u 'main.pas' {MainForm};
{$ R * .res}
 početi
 Primjena. inicijalizirati;
 Primjena. CreateForm (TMainForm, MainForm);
 Primjena. Trčanje;
 kraj.

Sada dodajte drugi obrazac projektu. Po dizajnu, drugi dodani obrazac nalazi se na popisu "Auto-Create Obrasci" u dijaloškom okviru Mogućnosti projekta.

Nazovite drugi obrazac "TLoginForm" i uklonite ga s popisa "Auto-Create Forms". Spremite jedinicu kao "login.pas".

U obrazac dodajte oznaku, uređivanje i gumb, a nakon toga slijedi a metoda klase za kreiranje, prikazivanje i zatvaranje dijaloga za prijavu / lozinku. Metoda "Execute" vraća istinu ako je korisnik u okvir zaporke unijeo ispravan tekst.

Evo punog izvornog koda:

jedinica prijaviti se;
sučelje
 namjene
 Windows, Poruke, SysUtils, Varijante, Klase,
 Grafika, kontrole, obrasci, dijalozi, StdCtrls;
 tip
 TLoginForm = klasa(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
postupak LogInButtonClick (pošiljalac: TObject);

publicclass funkcija Izvrši: boolean;kraj;
izvršenje{$ R * .dfm}
funkcija klase TLoginForm. Izvrši: boolean;poceti sa TLoginForm. Stvoriti(nula) dotry
 Rezultat: = ShowModal = mrOk;
 konačno
 Besplatno;
 kraj; kraj;
postupak TLoginForm. LogInButtonClick (pošiljalac: TObject); započnite lozinkuEdit. Tekst = 'delphi' zatim
 ModalResult: = mrOK
 drugo
 ModalResult: = mrAbort;
 kraj;
kraj. 

Metoda Execute dinamički stvara instanca TLoginForma i prikazuje ga pomoću ShowModal metoda. ShowModal se ne vraća dok se obrazac ne zatvori. Kad se obrazac zatvori, vraća vrijednost ModalResult nekretnine.

OnClick događaj za prijavu "LogInButton" dodjeljuje "mrOk" svojstvu ModalResult ako je korisnik upisao ispravnu lozinku (što je "delphi" u gornjem primjeru). Ako je korisnik unijeo pogrešnu lozinku, ModalResult je postavljen na "mrAbort" (to može biti bilo što osim "mrNone").

Postavljanje vrijednosti svojstvu ModalResult zatvara obrazac. Izvrši povraćaj true ako je ModalResult jednak "mrOk" (ako je korisnik upisao ispravnu lozinku).

Ne stvarajte MainForm prije prijave

Sada morate biti sigurni da glavni obrazac nije kreiran ako korisnik nije uspio unijeti ispravnu lozinku.

Evo kako bi trebao izgledati izvorni kod projekta:

 program PasswordApp;
namjene
obrasci,
glavni u 'main.pasu' {MainForm},
prijava u 'login.pas' {LoginForm};
 {$ R * .res}
 beginif TLoginForm. Izvršiti thenbegin
 Primjena. inicijalizirati;
 Primjena. CreateForm (TMainForm, MainForm);
 Primjena. Trčanje;
 endelsebegin
 Primjena. MessageBox ('Niste ovlašteni za upotrebu aplikacije. Lozinka je "delphi". ',' Delphi aplikacija zaštićena lozinkom ');
 kraj; kraj.

Obratite pažnju na upotrebu ako onda drugo blok da odredite treba li stvoriti glavni obrazac. Ako "Execute" vrati pogrešno, MainForm se ne stvara i aplikacija se prekida bez pokretanja.

instagram story viewer