डेल्फी के साथ एक टॉपमोस्ट सिस्टम मोडल संदेश बॉक्स प्रदर्शित करें

डेस्कटॉप (विंडोज) अनुप्रयोगों के साथ, ए संदेश (संवाद) बॉक्स का उपयोग एप्लिकेशन के उपयोगकर्ता को सचेत करने के लिए किया जाता है कि कुछ कार्रवाई करने की आवश्यकता है, ताकि कुछ कार्रवाई पूरी हो गई या सामान्य रूप से, उपयोगकर्ताओं का ध्यान आकर्षित करने के लिए।

में डेल्फी, उपयोगकर्ता को एक संदेश प्रदर्शित करने के कई तरीके हैं। आप या तो RTL में प्रदान की गई किसी भी तैयार संदेश प्रदर्शित करने वाली दिनचर्या का उपयोग कर सकते हैं, जैसे ShowMessage या InputBox; या आप अपने स्वयं के संवाद बॉक्स (पुन: उपयोग के लिए) बना सकते हैं: CreateMessageDialog।

उपरोक्त सभी संवाद बॉक्स के साथ एक आम समस्या यह है कि वे उपयोगकर्ता को प्रदर्शित करने के लिए एप्लिकेशन को सक्रिय होना चाहिए. "सक्रिय" संदर्भित करता है जब आपके आवेदन में "इनपुट फ़ोकस" होता है।

यदि आप वास्तव में उपयोगकर्ता का ध्यान आकर्षित करना चाहते हैं और उन्हें कुछ और करने से रोकना चाहते हैं, तो आपको सक्षम होने की आवश्यकता है जब आपका एप्लिकेशन सक्रिय न हो, तब भी सिस्टम-मोडल सबसे ऊपरी संदेश बॉक्स प्रदर्शित करें.

सिस्टम-मोडल टॉप मोस्ट मैसेज बॉक्स

भले ही यह जटिल लग सकता है, वास्तविकता में यह वास्तव में नहीं है।

instagram viewer

चूंकि डेल्फी आसानी से अधिकांश विंडोज एपीआई कॉल तक पहुंच सकता है, इसलिए "मैसेजबॉक्स" निष्पादित करते हुए विंडोज एपीआई फ़ंक्शन चाल करेगा।

"Windows.pas" इकाई में परिभाषित - प्रत्येक डेल्फी फॉर्म के उपयोग खंड में डिफ़ॉल्ट रूप से शामिल, संदेश पात्र फ़ंक्शन एक संदेश बॉक्स बनाता है, प्रदर्शित करता है और संचालित करता है। संदेश बॉक्स में पूर्व-निर्धारित चिह्न और पुश बटन के संयोजन के साथ एक एप्लिकेशन-परिभाषित संदेश और शीर्षक होता है।

यहां बताया गया है कि मैसेजबॉक्स कैसे घोषित किया जाता है:

समारोह संदेश पात्र(

hWnd: HWND;
lpText,
lpCaption: PAnsiChar;
uType: कार्डिनल): पूर्णांक;

पहला पैरामीटर, hwnd, बनाए जाने वाले संदेश बॉक्स के स्वामी विंडो का हैंडल है। यदि आप एक संदेश बॉक्स बनाते हैं, जबकि संवाद बॉक्स मौजूद है, तो संवाद बॉक्स के हैंडल को इस रूप में उपयोग करें hWnd पैरामीटर।

lpText तथा lpCaption कैप्शन और संदेश पाठ निर्दिष्ट करें जो संदेश बॉक्स में प्रदर्शित किया गया है।

अंतिम है uType पैरामीटर और सबसे दिलचस्प है। यह पैरामीटर संवाद बॉक्स की सामग्री और व्यवहार को निर्दिष्ट करता है। यह पैरामीटर विभिन्न झंडों का एक संयोजन हो सकता है।

उदाहरण: सिस्टम मोडल चेतावनी बॉक्स जब सिस्टम दिनांक / समय बदलता है

आइए एक सिस्टम मोडल टॉपेस्ट मैसेज बॉक्स बनाने के उदाहरण पर एक नज़र डालें। आप करेंगे विंडोज मैसेज को हैंडल करें जब चल रहे सभी अनुप्रयोगों के लिए भेजा जाता है सिस्टम दिनांक / समय परिवर्तन"दिनांक और समय गुण" नियंत्रण कक्ष एप्लेट का उपयोग करने के लिए उदाहरण।

MessageBox फ़ंक्शन के रूप में बुलाया जाएगा:

 खिड़कियाँ। संदेश पात्र(

 संभाल,

 'यह एक सिस्टम मोडल संदेश है' # 13 # 10 'एक निष्क्रिय अनुप्रयोग से',

 'एक निष्क्रिय अनुप्रयोग से एक संदेश!'

 MB_SYSTEMMODAL या MB_SETFOREGROUND या MB_TOPMOST या MB_ICONHAND);

सबसे महत्वपूर्ण टुकड़ा अंतिम पैरामीटर है। "MB_SYSTEMMODAL या MB_SETFOREGROUND या MB_TOPMOST" संदेश बॉक्स को सिस्टम मोडल, शीर्ष सबसे सुनिश्चित करता है और अग्रभूमि विंडो बन जाता है।

  • MB_SYSTEMMODAL ध्वज यह सुनिश्चित करता है कि उपयोगकर्ता को hWnd पैरामीटर द्वारा पहचाने गए विंडो में काम जारी रखने से पहले संदेश बॉक्स का जवाब देना चाहिए।
  • MB_TOPMOST ध्वज निर्दिष्ट करता है कि संदेश बॉक्स को सभी गैर-सबसे ऊपरी खिड़कियों के ऊपर रखा जाना चाहिए और खिड़की के निष्क्रिय होने पर भी उनके ऊपर रहना चाहिए।
  • MB_SETFOREGROUND ध्वज यह सुनिश्चित करता है कि संदेश बॉक्स अग्रभूमि खिड़की बन जाए।

यहाँ पूर्ण उदाहरण कोड है (इकाई "यूनिट 1" में परिभाषित "फॉर्म 1" का TForm):

इकाई यूनिट 1;

इंटरफेस


का उपयोग करता है

 विंडोज, संदेश, SysUtils, वेरिएंट, कक्षाएं,

 ग्राफिक्स, नियंत्रण, प्रपत्र, संवाद, एक्स्ट्रेक्टल्स;


प्रकार

 TForm1 = कक्षा(TForm)

निजी

प्रक्रिया WMTimeChange (var Msg: TMessage); संदेश WM_TIMECHANGE;

जनता

{सार्वजनिक घोषणाएँ}

समाप्त;

वर

 फॉर्म 1: TForm1;


कार्यान्वयन{$ R * .dfm}


प्रक्रिया TForm1.WMTimeChange (var Msg: TMessage);

शुरू

 खिड़कियाँ। संदेश पात्र(

 संभाल,

 'यह एक सिस्टम मोडल संदेश है' # 13 # 10 'एक निष्क्रिय अनुप्रयोग से',

 'एक निष्क्रिय अनुप्रयोग से एक संदेश!'

 MB_SYSTEMMODAL या MB_SETFOREGROUND या MB_TOPMOST या MB_ICONHAND);

समाप्त;

समाप्त.

इस सरल एप्लिकेशन को चलाने का प्रयास करें। सुनिश्चित करें कि आवेदन कम से कम हो या कम से कम कुछ अन्य अनुप्रयोग सक्रिय हो। "दिनांक और समय गुण" नियंत्रण कक्ष एप्लेट चलाएँ और सिस्टम समय बदलें। जैसे ही आप "ओके" बटन दबाते हैं (पर) एप्लेट) आपके निष्क्रिय अनुप्रयोग से सिस्टम मोडल सबसे ऊपरी संदेश बॉक्स प्रदर्शित होगा।

instagram story viewer