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"):
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.