Kuinka tehdä Delphin kirjautumislomake

click fraud protection

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"):

instagram viewer
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ä.

instagram story viewer