MainFormof एक डेल्फी एप्लिकेशन एक फॉर्म (विंडो) है जो एप्लिकेशन के मुख्य निकाय में बनाया गया पहला है। यदि आपको अपने डेल्फी एप्लिकेशन के लिए किसी प्रकार के प्राधिकरण को लागू करने की आवश्यकता है, तो आप मुख्य फ़ॉर्म को बनाने और उपयोगकर्ता को प्रदर्शित करने से पहले एक लॉगिन / पासवर्ड संवाद प्रदर्शित करना चाह सकते हैं। संक्षेप में, मुख्य रूप बनाने से पहले "लॉगिन" संवाद बनाने, प्रदर्शित करने और नष्ट करने के लिए विचार है।
डेल्फी मेनफार्म
जब एक नई डेल्फी परियोजना बनाई जाती है, तो "फॉर्म 1" स्वचालित रूप से मेनफ़ॉर्म प्रॉपर्टी (ग्लोबल का) का मूल्य बन जाता है आवेदन वस्तु)। MainForm प्रॉपर्टी को एक अलग फ़ॉर्म असाइन करने के लिए, के फ़ॉर्म पृष्ठ का उपयोग करें परियोजना> विकल्प डिजाइन समय पर संवाद बॉक्स। जब मुख्य फॉर्म बंद हो जाता है, तो एप्लिकेशन समाप्त हो जाता है।
लॉगिन / पासवर्ड संवाद
आइए आवेदन के मुख्य रूप को बनाकर शुरू करें। एक फॉर्म में एक नया डेल्फी प्रोजेक्ट बनाएं। यह रूप है, डिजाइन द्वारा, मुख्य रूप है।
यदि आप फॉर्म का नाम "TMainForm" में बदलते हैं और यूनिट को "main.pas," के रूप में सहेजते हैं परियोजना का स्रोत कोड इस तरह दिखता है (प्रोजेक्ट को "PasswordApp" के रूप में सहेजा गया था):
कार्यक्रम PasswordApp;
का उपयोग करता है
फार्म,
मुख्य में 'main.pas' {MainForm};
{$ R * .res}
शुरू
आवेदन। प्रारंभ;
आवेदन। CreateForm (TMainForm, MainForm);
आवेदन। Daud;
समाप्त।
अब, प्रोजेक्ट में एक दूसरा फ़ॉर्म जोड़ें। डिजाइन द्वारा, जोड़ा गया दूसरा रूप प्रोजेक्ट विकल्प संवाद पर "ऑटो-क्रिएट फॉर्म" सूची में सूचीबद्ध हो जाता है।
दूसरे रूप को "TLoginForm" नाम दें और इसे "ऑटो-क्रिएट फॉर्म" सूची से हटा दें। इकाई को "login.pas" के रूप में सहेजें।
प्रपत्र पर एक लेबल, संपादित करें और बटन जोड़ें, उसके बाद ए कक्षा विधि लॉगिन / पासवर्ड संवाद बनाने, दिखाने और बंद करने के लिए। यदि उपयोगकर्ता ने पासवर्ड बॉक्स में सही पाठ दर्ज किया है, तो विधि "निष्पादित" सही है।
यहाँ पूर्ण स्रोत कोड है:
इकाई लॉग इन करें;
इंटरफेस
का उपयोग करता है
विंडोज, संदेश, SysUtils, वेरिएंट, कक्षाएं,
ग्राफिक्स, नियंत्रण, प्रपत्र, संवाद, StdCtrls;
प्रकार
TLoginForm = कक्षा(TForm)
LogInButton: TButton;
pwdLabel: TLabel;
पासवर्डएडिट: टीईडिट;
प्रक्रिया LogInButtonClick (प्रेषक: TObject);
publicclass फ़ंक्शन निष्पादन: बूलियन;समाप्त;
कार्यान्वयन{$ R * .dfm}
कक्षा समारोह TLoginForm। निष्पादन: बूलियन;से शुरू TLoginForm। सृजन करना(शून्य) dotry
परिणाम: = ShowModal = mrOk;
आखिरकार
नि: शुल्क;
समाप्त; समाप्त;
प्रक्रिया TLoginForm। LogInButtonClick (प्रेषक: TObject); शुरुआती पासवर्डईडिट। पाठ = 'डेल्फी' फिर
मोदलकल्त: = मृक
अन्य
मोदालोकुल्ट: = mrAbort;
समाप्त;
समाप्त।
निष्पादन विधि गतिशील रूप से बनाता है TLoginForm की एक आवृत्ति और इसका उपयोग करके प्रदर्शित करता है ShowModal तरीका। ShowModal तब तक वापस नहीं आता जब तक कि फॉर्म बंद नहीं हो जाता। जब प्रपत्र बंद हो जाता है, तो यह मान लौटाता है ModalResult संपत्ति।
यदि उपयोगकर्ता सही पासवर्ड (जो उपरोक्त उदाहरण में "डेल्फी" है) दर्ज किया गया है तो "LogInButton" ऑनक्लिक इवेंट हैंडलर ModalResult संपत्ति को "mrOk" प्रदान करता है। यदि उपयोगकर्ता ने एक गलत पासवर्ड प्रदान किया है, तो ModalResult "mrAbort" पर सेट है (यह "mrNone" को छोड़कर कुछ भी हो सकता है)।
ModalResult गुण का मान सेट करना प्रपत्र बंद करता है। निष्पादित सही है यदि ModalResult "mrOk" (यदि उपयोगकर्ता ने सही पासवर्ड दर्ज किया है) के बराबर है।
लॉगिन से पहले मेनफोर्म न बनाएं
अब आपको केवल यह सुनिश्चित करने की आवश्यकता है कि यदि उपयोगकर्ता सही पासवर्ड प्रदान करने में विफल रहा है तो मुख्य फ़ॉर्म नहीं बनाया गया है।
यहां बताया गया है कि प्रोजेक्ट का सोर्स कोड कैसा होना चाहिए:
कार्यक्रम PasswordApp;
का उपयोग करता है
फार्म,
मुख्य में 'main.pas' {MainForm},
'login.pas' {LoginForm} में लॉगिन करें;
{$ R * .res}
beginif TLoginForm। निष्पादित thenbegin
आवेदन। प्रारंभ;
आवेदन। CreateForm (TMainForm, MainForm);
आवेदन। Daud;
endelsebegin
आवेदन। MessageBox ('आप आवेदन का उपयोग करने के लिए अधिकृत नहीं हैं। पासवर्ड "डेल्फी" है। ',' पासवर्ड प्रोटेक्टेड डेल्फी एप्लिकेशन ');
समाप्त; समाप्त।
के उपयोग पर ध्यान दें अगर तब या यह निर्धारित करने के लिए ब्लॉक करें कि क्या मुख्य रूप बनाया जाना चाहिए। यदि "निष्पादित" गलत है, तो MainForm निर्मित नहीं होता है और एप्लिकेशन प्रारंभ किए बिना समाप्त हो जाता है।