Kaip sudaryti „Delphi“ prisijungimo formą

„MainFormof Delphi“ programa yra forma (langas), kuri yra pirmoji sukurta pagrindiniame programos tekste. Jei jums reikia įdiegti tam tikrą „Delphi“ programos autorizaciją, prieš sukurdami ir parodydami vartotojui pagrindinę formą, galbūt norėsite parodyti prisijungimo / slaptažodžio dialogo langą. Trumpai tariant, idėja yra sukurti, parodyti ir sunaikinti „prisijungimo“ dialogą prieš sukuriant pagrindinę formą.

„Delphi MainForm“

Kai sukuriamas naujas „Delphi“ projektas, „Forma1“ automatiškai tampa „MainForm“ (viso pasaulio) nuosavybės verte Taikymas objektas). Norėdami priskirti kitokią formą „MainForm“ ypatybei, naudokite Projektas> Parinktys dialogo langas projektavimo metu. Kai uždaroma pagrindinė forma, programa baigiama.

Prisijungimo / slaptažodžio dialogas

Pradėkime nuo pagrindinės programos formos sukūrimo. Sukurkite naują „Delphi“ projektą, kuriame būtų viena forma. Ši forma pagal dizainą yra pagrindinė forma.

Jei pakeisite formos pavadinimą į „TMainForm“ ir įrašysite vienetą kaip „main.pas“, projekto išeities kodas atrodo taip (projektas buvo išsaugotas kaip „PasswordApp“):

instagram viewer
programa „PasswordApp“;
naudoja
Formos,
 pagrindinis į 'main.pas' {MainForm};
{$ R * .res}
 prasideda
 Taikymas. Inicijuoti;
 Taikymas. „CreateForm“ (TMainForm, MainForm);
 Taikymas. Bėk;
 galas.

Dabar pridėkite antrą formą prie projekto. Pagal dizainą antroji pridėta forma bus įtraukta į „Automatinių formų formavimo“ sąrašą projekto parinkčių dialogo lange.

Pavadinkite antrąją formą „TLoginForm“ ir pašalinkite ją iš sąrašo „Automatiškai kurti formas“. Išsaugokite vienetą kaip „login.pas“.

Ant formos pridėkite etiketę, redagavimą ir mygtuką, po kurios rašoma a klasės metodas norėdami sukurti, parodyti ir uždaryti prisijungimo / slaptažodžio dialogą. Metodas „Vykdyti“ grįžta tiesa, jei vartotojas slaptažodžio laukelyje įvedė teisingą tekstą.

Čia yra visas šaltinio kodas:

vienetas Prisijungti;
sąsaja
 naudoja
 „Windows“, „Messages“, „SysUtils“, variantai, klasės,
 Grafika, Valdikliai, Formos, Dialogai, StdCtrls;
 tipo
 TLoginForm = klasė(TForm)

„LogInButton“: „TButton“;
pwdLabel: TLabel;
slaptažodžio taisymas: TEdit;
procedūra „LogInButtonClick“ (Siuntėjas: „TObject“);

viešosios klasės funkcija Vykdyti: boolean;galas;
įgyvendinimas{$ R * .dfm}
klasės funkcija „TLoginForm“. Vykdyti: boolean;pradėti nuo „TLoginForm“. Sukurti (nulis) pūlingas
 Rezultatas: = ShowModal = mrOk;
 pagaliau
 Laisvas;
 galas; galas;
procedūra „TLoginForm“. „LogInButtonClick“ (Siuntėjas: „TObject“); Tekstas = 'delphi' tada
 „ModalResult“: = „mrOK“
 Kitas
 „ModalResult“: = „mrAbort“;
 galas;
galas. 

Vykdyti metodą dinamiškai sukuria TLoginForm egzempliorių ir parodo jį naudodamas „ShowModal“ metodas. „ShowModal“ negrįš, kol forma nebus uždaryta. Kai forma uždaroma, ji grąžina „ModalResult“ nuosavybė.

„LogInButton“ „OnClick“ įvykių tvarkytojas priskiria „mrOk“ „ModalResult“ ypatybei, jei vartotojas įvedė teisingą slaptažodį (aukščiau pateiktame pavyzdyje „delphi“). Jei vartotojas pateikė neteisingą slaptažodį, „ModalResult“ nustatyta kaip „mrAbort“ (tai gali būti bet kas, išskyrus „mrNone“).

Nustačius vertės „ModalResult“ ypatybę, forma uždaroma. Vykdyti grąžinama tiesa, jei „ModalResult“ prilygsta „mrOk“ (jei vartotojas įvedė teisingą slaptažodį).

Nesukurkite „MainForm“ prieš prisijungdami

Dabar turite įsitikinti, kad pagrindinė forma nėra sukurta, jei vartotojas nepateikė teisingo slaptažodžio.

Štai kaip turėtų atrodyti projekto šaltinis:

 programa „PasswordApp“;
naudoja
Formos,
pagrindinis „main.pas“ {MainForm},
prisijungti 'login.pas' {LoginForm};
 {$ R * .res}
 pradžia „TLoginForm“. Vykdyti tada pradedama
 Taikymas. Inicijuoti;
 Taikymas. „CreateForm“ (TMainForm, MainForm);
 Taikymas. Bėk;
 endelsebegin
 Taikymas. „MessageBox“ („Jūs nesate įgalioti naudoti programos. Slaptažodis yra „delphi“. ', „Delphi“ programa apsaugota slaptažodžiu “);
 galas; galas.

Atkreipkite dėmesį į jei tada dar blokas, kad nustatytumėte, ar reikia sukurti pagrindinę formą. Jei „Vykdyti“ grąžina klaidingą informaciją, „MainForm“ nesukuriama ir programa baigiama nepaleidžiant.