Kuidas teha Delphi sisselogimisvormi

click fraud protection

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};
instagram viewer
{$ 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.

instagram story viewer