تطبيق MainFormof a Delphi هو نموذج (نافذة) هو أول نموذج تم إنشاؤه في النص الرئيسي للتطبيق. إذا كنت بحاجة إلى تطبيق نوع من التفويض لتطبيق Delphi ، فقد ترغب في عرض مربع حوار تسجيل الدخول / كلمة المرور قبل إنشاء النموذج الرئيسي وعرضه على المستخدم. باختصار ، الفكرة هي إنشاء وعرض وتدمير مربع حوار "تسجيل الدخول" قبل إنشاء النموذج الرئيسي.
دلفي مينفورم
عندما يتم إنشاء مشروع دلفي جديد ، يصبح "Form1" تلقائيًا قيمة خاصية MainForm (العالمية تطبيق موضوع). لتعيين نموذج مختلف لخاصية MainForm ، استخدم صفحة النماذج في مشروع> خيارات مربع الحوار في وقت التصميم. عند إغلاق النموذج الرئيسي ، يتم إنهاء التطبيق.
مربع حوار تسجيل الدخول / كلمة المرور
لنبدأ بإنشاء النموذج الرئيسي للتطبيق. إنشاء مشروع دلفي جديد يحتوي على نموذج واحد. هذا النموذج ، حسب التصميم ، هو الشكل الرئيسي.
إذا قمت بتغيير اسم النموذج إلى "TMainForm" وحفظ الوحدة باسم "main.pas" ، فإن شفرة المصدر للمشروع يشبه هذا (تم حفظ المشروع باسم "PasswordApp"):
برنامج PasswordApp
الاستخدامات
نماذج،
الأساسية في 'main.pas' {MainForm}؛
{$ R * .res}
ابدأ
تطبيق. تهيئة
تطبيق. CreateForm (TMainForm ، MainForm) ؛
تطبيق. يركض؛
النهاية.
الآن ، أضف نموذجًا ثانيًا إلى المشروع. حسب التصميم ، يتم إدراج النموذج الثاني الذي تم إضافته في قائمة "إنشاء النماذج تلقائيًا" في مربع الحوار "خيارات المشروع".
اسم النموذج الثاني "TLoginForm" وإزالته من قائمة "إنشاء النماذج تلقائيًا". احفظ الوحدة باسم "login.pas".
إضافة تسمية ، تحرير ، وزر في النموذج ، متبوعًا بـ طريقة الصف لإنشاء وعرض وإغلاق مربع الحوار تسجيل الدخول / كلمة المرور. تُرجع الطريقة "تنفيذ" بشكل صحيح إذا قام المستخدم بإدخال النص الصحيح في مربع كلمة المرور.
إليك شفرة المصدر الكاملة:
وحدة تسجيل الدخول؛
واجهه المستخدم
الاستخدامات
ويندوز ، الرسائل ، SysUtils ، المتغيرات ، فئات ،
الرسومات ، الضوابط ، النماذج ، الحوارات ، StdCtrls ؛
اكتب
TLoginForm = صف دراسي(TForm)
LogInButton: TButton؛
pwdLabel: TLabel؛
passwordEdit: TEdit؛
الإجراء LogInButtonClick (المرسل: TObject) ؛
وظيفة publicclass تنفيذ: منطقية.النهاية;
التنفيذ{$ R * .dfm}
وظيفة الطبقة TLoginForm. تنفيذ: منطقية.إبتدئ ب TLoginForm. خلق(لا شيء) dotry
النتيجة: = ShowModal = mrOk؛
أخيرا
مجانا؛
النهاية؛ النهاية؛
إجراء TLoginForm. LogInButtonClick (المرسل: TObject) ؛ startif passwordEdit. النص = "دلفي" ثم
ModalResult: = mrOK
آخر
ModalResult: = mrAbort؛
النهاية؛
النهاية.
طريقة التنفيذ يخلق بشكل حيوي مثيل TLoginForm ويعرضه باستخدام ShowModal طريقة. لا يُرجع ShowModal حتى يتم إغلاق النموذج. عند إغلاق النموذج ، تقوم بإرجاع قيمة ModalResult خاصية.
يعين معالج الأحداث "LogInButton" OnClick "mrOk" لخاصية ModalResult إذا قام المستخدم بإدخال كلمة المرور الصحيحة (والتي "delphi" في المثال أعلاه). إذا قدم المستخدم كلمة مرور خاطئة ، فسيتم تعيين ModalResult على "mrAbort" (يمكن أن يكون أي شيء باستثناء "mrNone").
تعيين قيمة إلى الخاصية ModalResult يغلق النموذج. تنفيذ الإرجاع صحيح إذا ModalResult يساوي "mrOk" (إذا كان المستخدم قد أدخل كلمة المرور الصحيحة).
لا تقم بإنشاء MainForm قبل تسجيل الدخول
تحتاج فقط الآن إلى التأكد من عدم إنشاء النموذج الرئيسي إذا فشل المستخدم في توفير كلمة المرور الصحيحة.
إليك كيفية ظهور شفرة المصدر الخاصة بالمشروع:
برنامج PasswordApp
الاستخدامات
نماذج،
main في 'main.pas' {MainForm} ،
تسجيل الدخول في 'login.pas' {LoginForm} ؛
{$ R * .res}
startif TLoginForm. نفذ - اعدم ثم تبدأ
تطبيق. تهيئة
تطبيق. CreateForm (TMainForm ، MainForm) ؛
تطبيق. يركض؛
endelsebegin
تطبيق. MessageBox ('أنت غير مصرح لك باستخدام التطبيق. كلمة المرور هي "delphi". "،" تطبيق محمي بكلمة مرور Delphi ") ؛
النهاية؛ النهاية.
لاحظ استخدام إذا بعد ذلك آخر حظر لتحديد ما إذا كان يجب إنشاء النموذج الرئيسي. في حالة إرجاع "تنفيذ" خطأ ، لا يتم إنشاء MainForm وينتهي التطبيق دون البدء.