Kako narediti obrazec za prijavo v Delphi

Aplikacija MainFormof a Delphi je obrazec (okno), ki je prvo, ustvarjeno v glavnem delu aplikacije. Če morate za svojo aplikacijo Delphi uporabiti nekakšno pooblastilo, boste morda želeli prikazati pogovorno okno za prijavo / geslo, preden je glavni obrazec ustvarjen in prikazan uporabniku. Skratka, ideja je ustvariti, prikazati in uničiti pogovorno okno "prijava" pred ustvarjanjem glavnega obrazca.

Delphi MainForm

Ko je ustvarjen nov projekt Delphi, "Form1" samodejno postane vrednost lastnosti MainForm (globalne) Uporaba predmet). Če želite dodeliti drugačen obrazec lastnosti MainForm, uporabite stran Obrazci v Projekt> Možnosti pogovorno okno v času načrtovanja. Ko se glavni obrazec zapre, prijava preneha.

Dialog za prijavo / geslo

Začnimo z ustvarjanjem glavne oblike aplikacije. Ustvarite nov projekt Delphi, ki vsebuje en obrazec. Ta oblika je po zasnovi glavna oblika.

Če spremenite ime obrazca v "TMainForm" in enoto shranite kot "main.pas", je izvorna koda projekta izgleda tako (projekt je bil shranjen kot "PasswordApp"):

instagram viewer
program PasswordApp;
uporablja
Obrazci,
 glavno v 'main.pas' {MainForm};
{$ R * .res}
 začeti
 Uporaba. Pobuda;
 Uporaba. CreateForm (TMainForm, MainForm);
 Uporaba. Teči;
 konec.

Zdaj pa projektu dodajte drugi obrazec. Drugi dodani obrazec je po načrtu naveden na seznamu "Samodejno ustvari obrazce" v pogovornem oknu Možnosti projekta.

Poimenujte drugi obrazec "TLoginForm" in ga odstranite s seznama "Auto-Create Forms". Enoto shranite kot "login.pas".

Na obrazec dodajte oznako, urejanje in gumb, ki mu sledi a razredna metoda ustvariti, prikazati in zapreti pogovorno okno za prijavo / geslo. Način "Izvedi" vrne true, če je uporabnik v polje z geslom vnesel pravilno besedilo.

Tu je celotna izvorna koda:

enota Vpiši se;
vmesnik
 uporablja
 Windows, Sporočila, SysUtils, Variante, Razredi,
 Grafika, kontrolniki, obrazci, dialogi, StdCtrls;
 tip
 TLoginForm = razred(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
postopek LogInButtonClick (pošiljatelj: TObject);

funkcija javnega razreda Izvedite: boolean;konec;
izvajanje{$ R * .dfm}
razred funkcija TLoginForm. Izvedite: boolean;začni z TLoginForm. Ustvari (nič) dotry
 Rezultat: = ShowModal = mrOk;
 končno
 Prost;
 konec; konec;
postopek TLoginForm. LogInButtonClick (Pošiljatelj: TObject); beginif passwordUredite. Text = 'delphi' torej
 ModalResult: = mrOK
 drugače
 ModalResult: = mrAbort;
 konec;
konec. 

Metoda Execute dinamično ustvarja primerek obrazca TLoginForm in ga prikaže s pomočjo ShowModal metoda. ShowModal se ne vrne, dokler se obrazec ne zapre. Ko se obrazec zapre, vrne vrednost ModalResult premoženje.

Upravljalec dogodkov "LogInButton" OnClick dodeli "mrOk" lastnosti ModalResult, če je uporabnik vnesel pravilno geslo (kar je v zgornjem primeru "delphi"). Če je uporabnik vstavil napačno geslo, je ModalResult nastavljen na "mrAbort" (lahko je karkoli, razen "mrNone").

Z nastavitvijo vrednosti lastnosti ModalResult zaprite obrazec. Izvrni vrne true, če je ModalResult enak "mrOk" (če je uporabnik vnesel pravilno geslo).

Pred prijavo ne ustvarite glavnega obrazca

Zdaj se morate prepričati le, da glavni obrazec ni ustvarjen, če uporabnik ni sporočil pravilnega gesla.

Tukaj je videti, kako naj izgleda izvorna koda projekta:

 program PasswordApp;
uporablja
Obrazci,
glavni v 'main.pas' {MainForm},
prijava v 'login.pas' {LoginForm};
 {$ R * .res}
 beginif TLoginForm. Izvedite potem začet
 Uporaba. Pobuda;
 Uporaba. CreateForm (TMainForm, MainForm);
 Uporaba. Teči;
 endelsebegin
 Uporaba. MessageBox („Ni vam dovoljeno uporabljati aplikacije. Geslo je "delphi". "," Delphi aplikacija, zaščitena z geslom ");
 konec; konec.

Upoštevajte uporabo če potem drugače blok, da ugotovi, ali je treba ustvariti glavni obrazec. Če "Execute" vrne napačno, se MainForm ne ustvari in aplikacija se ustavi brez zagona.