Delphi rakendus MainFormof on vorm (aken), mis on esimene loodud rakenduse põhiosas. Kui peate oma Delphi rakenduse jaoks rakendama mingisugust volitust, võiksite enne põhivormi loomist ja kasutajale kuvamist kuvada sisselogimise / parooli dialoogi. Lühidalt öeldes on idee enne põhivormi loomist luua, kuvada ja hävitada dialoogi "sisselogimine".
Delphi põhiform
Uue Delphi projekti loomisel muutub vorm "vorm1" automaatselt MainFormi (globaalse Rakendus objekt). MainFormi atribuudile mõne muu vormi määramiseks kasutage lehe Vormid lehte Projekt> Valikud dialoogiboks projekteerimise ajal. Kui põhivorm suletakse, lõpeb rakendus.
Sisselogimise / parooli dialoog
Alustame rakenduse põhivormi loomisega. Looge uus vorm, mis sisaldab ühte vormi Delphi. See vorm on oma kujunduse järgi põhivorm.
Kui muudate vormi nimeks "TMainForm" ja salvestate üksuse nimega "main.pas", siis projekti lähtekood näeb välja selline (projekt salvestati kui "PasswordApp"):
programmi PasswordApp;
kasutab
Vormid,
peamine sisse 'main.pas' {MainForm};
{$ R * .res}
alustada
Rakendus. Alusta;
Rakendus. CreateForm (TMainForm, MainForm);
Rakendus. Jooksma;
lõpp.
Nüüd lisage projektile teine vorm. Kujunduse järgi loetletakse teine lisatud vorm projekti suvandite dialoogi loendis "Vormide automaatne loomine".
Pange teisele vormile nimi "TLoginForm" ja eemaldage see loendist "Vormide automaatne loomine". Salvestage seade nimega "login.pas".
Lisage vormile silt, redigeerimine ja nupp, millele järgneb a klassimeetod sisselogimise / parooli dialoogi loomiseks, kuvamiseks ja sulgemiseks. Meetod "Käivita" naaseb tõeseks, kui kasutaja on paroolikasti sisestanud õige teksti.
Siin on täielik lähtekood:
ühik Logi sisse;
liides
kasutab
Windows, Sõnumid, SysUtils, Variandid, Klassid,
Graafika, juhtelemendid, vormid, dialoogid, StdCtrls;
tüüp
TLoginForm = klass(TForm)
LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
protseduur LogInButtonClick (saatja: TObject);
avaliku klassi funktsioon Käivita: loogiline;lõpp;
rakendamine{$ R * .dfm}
klassifunktsioon TLoginForm. Käivita: loogiline;algab TLoginForm. Loo (null) täpiline
Tulemus: = ShowModal = mrOk;
lõpuks
Tasuta;
lõpp; lõpp;
protseduur TLoginForm. LogInButtonClick (Saatja: TObject); alustage parooli muutmist. Tekst = 'delphi' siis
ModalResult: = mrOK
muud
ModalResult: = mrAbort;
lõpp;
lõpp.
Käivita meetod loob dünaamiliselt TLoginFormi eksemplari ja kuvab selle, kasutades ShowModal meetod. ShowModal ei naase enne, kui vorm suletakse. Kui vorm suletakse, tagastab see väärtuse ModalResult vara.
OnClicki sündmuste käitleja "LogInButton" määrab atribuudile ModalResult väärtuse "mrOk", kui kasutaja on sisestanud õige parooli (mis ülaltoodud näites on "delphi"). Kui kasutaja on andnud vale parooli, seatakse ModalResult väärtuseks "mrAbort" (see võib olla midagi muud kui "mrNone").
Atribuudi ModalResult väärtuse määramine sulgeb vormi. Execute tagastab true, kui ModalResult võrdub "mrOk" (kui kasutaja on sisestanud õige parooli).
Ärge looge MainFormi enne sisselogimist
Nüüd peate ainult veenduma, et põhivormi ei looda, kui kasutaja ei andnud õiget parooli.
Projekti lähtekood peaks välja nägema järgmiselt:
programmi PasswordApp;
kasutab
Vormid,
peamine kaustas 'main.pas' {MainForm}
logi sisse 'login.pas' {LoginForm};
{$ R * .res}
algav TLoginForm. Täitke siis alustatakse
Rakendus. Alusta;
Rakendus. CreateForm (TMainForm, MainForm);
Rakendus. Jooksma;
endelsebegin
Rakendus. MessageBox ('Teil pole rakenduse kasutamiseks luba. Parool on "delphi". ',' Parooliga kaitstud Delphi rakendus ');
lõpp; lõpp.
Pange tähele kui siis veel põhivormi loomise määramiseks. Kui funktsioon "Käivita" tagastab vale, siis MainFormi ei looda ja rakendus suletakse käivitamata.