A MainFormof a Delphi alkalmazás egy képernyő (ablak), amely az első, amelyet az alkalmazás fő részében hoztak létre. Ha valamilyen felhatalmazást kell telepítenie a Delphi alkalmazáshoz, akkor érdemes megjeleníteni egy bejelentkezési / jelszó párbeszédpanelt, mielőtt a fő űrlap létrejön és megjelenik a felhasználó számára. Röviden: az ötlet az, hogy a fő űrlap létrehozása előtt létrehozza, megjeleníti és megsemmisíti a "bejelentkezés" párbeszédpanelt.
A Delphi MainForm
Egy új Delphi projekt létrehozásakor az "1. forma" automatikusan a MainForm tulajdonság (a globális érték) értékévé válik Alkalmazás tárgy). Ha másik űrlapot szeretne hozzárendelni a MainForm tulajdonsághoz, használja a Projekt> Beállítások párbeszédpanel a tervezéskor. Amikor a fő űrlap bezárul, az alkalmazás megszűnik.
Bejelentkezés / Jelszó párbeszédpanel
Kezdjük az alkalmazás fő formájának létrehozásával. Hozzon létre egy új Delphi projektet, amely egy űrlapot tartalmaz. Ez az forma a tervezés alapján a fő forma.
Ha megváltoztatja az űrlap nevét "TMainForm" -ra, és az egységet "main.pas" néven menti, akkor a
a projekt forráskódja így néz ki (a projektet "PasswordApp" néven mentettük):program PasswordApp;
felhasználások
Formák,
fő- ban ben 'main.pas' {MainForm};
{$ R * .res}
kezdődik
Alkalmazás. inicializálása;
Alkalmazás. CreateForm (TMainForm, MainForm);
Alkalmazás. Fuss;
véget.
Most adjon hozzá egy második űrlapot a projekthez. Tervezés szerint a hozzáadott második űrlap felkerül a Projektbeállítások párbeszédpanel "Automatikus létrehozási űrlapok" listájára.
Nevezze el a második űrlapot "TLoginForm", és távolítsa el az "Automatikusan létrehozott űrlapok" listáról. Mentse az egységet "login.pas" néven.
Adjon hozzá egy címkét, szerkesztést és gombot az űrlaphoz, majd a osztály módszer a bejelentkezés / jelszó párbeszédpanel létrehozásához, megjelenítéséhez és bezárásához. Az "Végrehajtás" metódus visszatér, ha a felhasználó helyes szöveget írt a jelszó mezőbe.
Itt van a teljes forráskód:
Mértékegység Belépés;
felület
felhasználások
Windows, Üzenetek, SysUtils, Változatok, Osztályok,
Grafika, Vezérlők, Űrlapok, Párbeszédek, StdCtrls;
típus
TLoginForm = osztály(TForm)
LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
eljárás LogInButtonClick (Feladó: TObject);
publicclass funkció Végrehajtás: logikai;vég;
végrehajtás{$ R * .dfm}
osztály funkció TLoginForm. Végrehajtás: logikai;kezdve TLoginForm. létrehozása (nulla) dotry
Eredmény: = ShowModal = mrOk;
végül
Ingyenes;
végén; végén;
eljárás TLoginForm. LogInButtonClick (Feladó: TObject); kezdődik a passwordEdit. Szöveg = 'delphi' azután
ModalResult: = mrOK
más
ModalResult: = mrAbort;
végén;
véget.
Az Execute módszer dinamikusan hoz létre a TLoginForm egy példánya, és megjeleníti azt a ShowModal eljárás. A ShowModal nem tér vissza, amíg az űrlap bezáródik. Amikor az űrlap bezáródik, visszaadja a ModalResult ingatlan.
Az "LogInButton" OnClick eseménykezelő "mrOk" -ot rendel hozzá a ModalResult tulajdonsághoz, ha a felhasználó helyes jelszót adott meg (amely a fenti példában "delphi"). Ha a felhasználó rossz jelszót adott meg, akkor a ModalResult "mrAbort" értékre van állítva (bármi lehet, az "mrNone" kivételével).
Az érték megadása a ModalResult tulajdonsághoz bezárja az űrlapot. Az Execute igaz értéket ad vissza, ha a ModalResult megegyezik az "mrOk" -val (ha a felhasználó helyes jelszót adott meg).
Ne hozzon létre MainForm-ot bejelentkezés előtt
Most csak akkor ellenőriznie kell, hogy a fő űrlap nem jött-e létre, ha a felhasználó nem adta meg a helyes jelszót.
Így néz ki a projekt forráskódja:
program PasswordApp;
felhasználások
Formák,
main a 'main.pas' {MainForm}
bejelentkezés 'login.pas' {LoginForm};
{$ R * .res}
beginif TLoginForm. kivégez thenbegin
Alkalmazás. inicializálása;
Alkalmazás. CreateForm (TMainForm, MainForm);
Alkalmazás. Fuss;
endelsebegin
Alkalmazás. MessageBox ('Nem jogosult az alkalmazás használatára. A jelszó: "delphi". ',' Jelszóval védett Delphi alkalmazás ');
végén; véget.
Vegye figyelembe a ha akkor más blokk annak meghatározására, hogy létre kell hozni a fő űrlapot. Ha az "Végrehajtás" hamis értéket ad vissza, akkor a MainForm nem jön létre, és az alkalmazás indítás nélkül leáll.