MainFormof Delphi -sovellus on muoto (ikkuna), joka on ensimmäinen sovelluksen pääosaan luotu. Jos joudut ottamaan käyttöön jonkinlaisen valtuutuksen Delphi-sovelluksellesi, saatat haluta näyttää kirjautumis- ja salasana-valintaikkunan ennen päämuodon luomista ja näyttämistä käyttäjälle. Lyhyesti sanottuna, idea on luoda, näyttää ja tuhota "kirjautuminen" -valintaikkuna ennen päämuodon luomista.
Delphi MainForm
Kun uusi Delphi-projekti luodaan, "Lomakkeesta1" tulee automaattisesti MainForm-omaisuuden arvo (globaali hakemus esine). Jos haluat määrittää MainForm-omaisuudelle erilaisen muodon, käytä Projekti> Asetukset valintaikkuna suunnittelun aikana. Kun päälomake sulkeutuu, sovellus päättyy.
Kirjautumis- / salasana -valintaikkuna
Aloitetaan luomalla sovelluksen päämuoto. Luo uusi Delphi-projekti, joka sisältää yhden lomakkeen. Tämä muoto on suunnittelussa päämuoto.
Jos muutat lomakkeen nimen muotoon "TMainForm" ja tallennat yksikön nimellä "main.pas", projektin lähdekoodi näyttää tältä (projekti tallennettiin nimellä "PasswordApp"):
ohjelmoida PasswordApp;
käyttötarkoitukset
lomakkeet,
tärkein sisään 'main.pas' {MainForm};
{$ R * .res}
alkaa
Sovellus. Alustaa;
Sovellus. CreateForm (TMainForm, MainForm);
Sovellus. Juosta;
end.
Lisää nyt toinen lomake projektiin. Suunnittelun mukaan toinen lisätty muoto luetellaan Projekti-valintaikkunan "Automaattisesti luovat lomakkeet" -luettelossa.
Nimeä toinen muoto "TLoginForm" ja poista se "Luo lomakkeet" -luettelosta. Tallenna yksikkö nimellä "login.pas".
Lisää lomakkeeseen etiketti, muokkaus ja painike ja sen jälkeen a luokan menetelmä luoda, näyttää ja sulkea kirjautuminen / salasana -valintaikkuna. Menetelmä "Suorita" palaa totta, jos käyttäjä on kirjoittanut oikean tekstin salasanakenttään.
Tässä on täydellinen lähdekoodi:
yksikkö Kirjaudu sisään;
käyttöliittymä
käyttötarkoitukset
Windows, Viestit, SysUtils, variantit, luokat,
Grafiikka, Ohjaimet, Lomakkeet, Dialogit, StdCtrls;
tyyppi
TLoginForm = luokka(TForm)
LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
menettely LogInButtonClick (Lähettäjä: TObject);
julkisen luokan toiminto Suorita: boolean;pää;
toteutus{$ R * .dfm}
luokkatoiminto TLoginForm. Suorita: boolean;beginwith TLoginForm. Luoda(nolla) dotry
Tulos: = ShowModal = mrOk;
vihdoin
Vapaa;
end; end;
menettely TLoginForm. LogInButtonClick (Lähettäjä: TObject); aloita salasanan muokkaus. Teksti = 'delphi' sitten
ModalResult: = mrOK
muu
ModalResult: = mrAbort;
end;
end.
Suorita-menetelmä luo dynaamisesti TLoginForm-esiintymän ja näyttää sen käyttämällä ShowModal menetelmä. ShowModal ei palaa, ennen kuin lomake sulkeutuu. Kun lomake sulkeutuu, se palauttaa ModalResult omaisuutta.
"LogInButton" OnClick-tapahtumakäsittelijä määrittää "mrOk" ModalResult-ominaisuuteen, jos käyttäjä on syöttänyt oikean salasanan (joka on "delphi" yllä olevassa esimerkissä). Jos käyttäjä on antanut väärän salasanan, ModalResult asetetaan arvoon "mrAbort" (se voi olla mikä tahansa muu kuin "mrNone").
Arvon asettaminen ModalResult-ominaisuudelle sulkee lomakkeen. Suorita palauttaa arvon true, jos ModalResult on yhtä suuri kuin "mrOk" (jos käyttäjä on syöttänyt oikean salasanan).
Älä luo MainFormia ennen sisäänkirjautumista
Sinun on nyt varmistettava, että päälomaketta ei luoda, jos käyttäjä ei antanut oikeaa salasanaa.
Projektin lähdekoodin tulisi näyttää seuraavalta:
ohjelmoida PasswordApp;
käyttötarkoitukset
lomakkeet,
pääasiallinen main.pas-sivustossa {MainForm}
kirjaudu sisään 'login.pas' {LoginForm};
{$ R * .res}
beginif TLoginForm. Suorittaa thenbegin
Sovellus. Alustaa;
Sovellus. CreateForm (TMainForm, MainForm);
Sovellus. Juosta;
endelsebegin
Sovellus. MessageBox ('Sinulla ei ole lupaa käyttää sovellusta. Salasana on "delphi". ',' Salasanasuojattu Delphi-sovellus ');
end; end.
Huomaa jos sitten muu estää sen määrittämiseksi, onko päämuoto luotava. Jos "Suorita" palauttaa väärin, MainFormia ei luoda ja sovellus lopetetaan käynnistämättä.