„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“):
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.