כיצד להכין טופס כניסה לדלפי

היישום MainFormof a Delphi הוא טופס (חלון) שהוא הראשון שנוצר בגוף הראשי של היישום. אם עליך ליישם הרשאה כלשהי עבור יישום Delphi שלך, ייתכן שתרצה להציג דו שיח כניסה / סיסמה לפני שנוצר הטופס הראשי ויוצג למשתמש. בקיצור, הרעיון הוא ליצור, להציג ולהשמיד את תיבת הדו-שיח "התחברות" לפני יצירת הטופס הראשי.

MainForm של דלפי

כאשר נוצר פרויקט דלפי חדש, "Form1" הופך אוטומטית לערך של המאפיין MainForm (של הגלובלי יישום חפץ). כדי להקצות טופס אחר לנכס MainForm, השתמש בדף טפסים של פרויקט> אפשרויות תיבת דו-שיח בזמן העיצוב. כאשר הטופס הראשי נסגר, היישום מסתיים.

דיאלוג כניסה / סיסמה

נתחיל ביצירת הצורה העיקרית של היישום. צור פרויקט חדש של דלפי המכיל טופס אחד. צורה זו היא, על ידי עיצוב, הצורה העיקרית.

אם תשנה את שם הטופס ל- "TMainForm" ותשמור את היחידה כ- main.pas, את קוד המקור של הפרויקט נראה כך (הפרויקט נשמר בשם "PasswordApp"):

תכנית PasswordApp;
שימושים
טפסים,
 עיקרי בתוך 'main.pas' {MainForm};
{$ R * .res}
 התחל
 יישום. לאתחל;
 יישום. CreateForm (TMainForm, MainForm);
 יישום. לרוץ;
 סוף.

כעת, הוסף טופס שני לפרויקט. על ידי עיצוב, הטופס השני שנוסף מופיע ברשימה "צור טפסים אוטומטיים" בתיבת הדו-שיח אפשרויות פרויקט.

instagram viewer

תן שם לטופס השני "TLoginForm" והסר אותו מרשימת "צור טפסים אוטומטיים". שמור את היחידה כ- login.pas.

הוסף טופס תווית, עריכה וכפתור ואחריו א שיטת כיתה כדי ליצור, להציג ולסגור את תיבת הדו-שיח להתחברות / סיסמה. השיטה "ביצוע" חוזרת נכונה אם המשתמש הזין את הטקסט הנכון בתיבת הסיסמה.

להלן קוד המקור המלא:

יחידה התחברות;
ממשק
 שימושים
 Windows, הודעות, SysUtils, גרסאות, שיעורים,
 גרפיקה, בקרות, טפסים, דיאלוגים, StdCtrls;
 סוג
 TLoginForm = מעמד(TForm)

LogInButton: TButton;
pwdLabel: TLabel;
passwordEdit: TEdit;
הליך LogInButtonClick (שולח: TObject);

פונקציית הסיווג הציבורי ביצוע: בוליאני;סוף;
יישום{$ R * .dfm}
פונקציה כיתתית TLoginForm. ביצוע: בוליאני;התחל עם TLoginForm. צור (אפס) דוטרי
 תוצאה: = ShowModal = mrOk;
 סוף סוף
 חינם;
 סוף; סוף;
תהליך TLoginForm. התחבר LogInButtonClick (שולח: TObject); התחל סיסמא של התחל. טקסט = 'דלפי' לאחר מכן
 ModalResult: = mrOK
 אחר
 ModalResult: = mrAbort;
 סוף;
סוף. 

שיטת ביצוע יוצר באופן דינמי מופע של TLoginForm ומציג אותו באמצעות ShowModal שיטה. ShowModal לא חוזר עד שהטופס נסגר. כאשר הטופס נסגר, הוא מחזיר את ערך ה- ModalResult תכונה.

מטפל האירועים OnClick "LogInButton" מקצה "mrOk" לנכס ModalResult אם המשתמש הזין את הסיסמה הנכונה (שהיא "דלפי" בדוגמה לעיל). אם המשתמש סיפק סיסמה שגויה, ModalResult מוגדר כ- "mrAbort" (זה יכול להיות הכל פרט ל "mrNone").

הגדרת ערך לנכס ModalResult סוגרת את הטופס. ביצוע מוחזר נכון אם ModalResult שווה ל- "mrOk" (אם המשתמש הזין את הסיסמה הנכונה).

אל תיצור MainForm לפני הכניסה

כעת עליך רק לוודא שהטופס הראשי לא נוצר אם המשתמש לא הצליח לספק את הסיסמה הנכונה.

כך ייראה קוד המקור של הפרויקט:

 תכנית PasswordApp;
שימושים
טפסים,
main ב- 'main.pas' {MainForm},
התחבר ב- 'login.pas' {LoginForm};
 {$ R * .res}
 התחלה TLoginForm. לבצע אז התחיל
 יישום. לאתחל;
 יישום. CreateForm (TMainForm, MainForm);
 יישום. לרוץ;
 endelsebegin
 יישום. MessageBox ('אינך מורשה להשתמש ביישום. הסיסמה היא "דלפי". ',' אפליקציית דלפי מוגנת באמצעות סיסמה ');
 סוף; סוף.

שימו לב לשימוש ב- אם כן חסום כדי לקבוע אם יש ליצור את הטופס הראשי. אם "ביצוע" חוזר כוזב, MainForm לא נוצר והיישום מסתיים בלי להתחיל.