चेकबॉक्स सेट करें। OnClick घटना के बिना जाँच की

टीसीचैटबॉक्स डेल्फी नियंत्रण एक चेकबॉक्स दिखाता है जो चालू (चेक) या बंद (अनियंत्रित) हो सकता है। संपत्ति की जाँच की निर्दिष्ट करता है कि चेकबॉक्स चेक किया गया है या नहीं।

जब उपयोगकर्ता अपनी जाँच की गई स्थिति को बदलने के लिए चेकबॉक्स पर क्लिक करता है, तो चेकबॉक्स के लिए OnClick घटना निकाल दी जाती है।

चेकबॉक्स की जाँच की गई संपत्ति को बदलना

चूंकि कोई नहीं है OnCheckedChanged ईवेंट, आप संभवतः ऑनबॉक्स इवेंट में चेकबॉक्स के चेक किए गए राज्य पर निर्भर प्रोग्राम लॉजिक को संभाल लेंगे।

हालाँकि, यदि आप प्रोग्राम की गई प्रॉपर्टी को प्रोग्रामेटिक रूप से बदलें, ऑनक्लिक इवेंट को निकाल दिया जाएगा - भले ही कोई उपयोगकर्ता बातचीत नहीं हुई।

चेकबॉक्स की चेक की गई संपत्ति को प्रोग्रामिक रूप से बदलने के लिए (कम से कम) दो तरीके हैं, जबकि ऑनक्लिक इवेंट को "अक्षम" कर सकते हैं।

OnClick हैंडलर निकालें, चेक्ड चेंज करें, ओरिजिनल ऑनलीक हैंडलर को वापस रखें

Win32 के लिए डेल्फी में, एक घटना में केवल एक इवेंट हैंडलर (प्रक्रिया) जुड़ी हो सकती है (भले ही Win32 के लिए डेल्फी में मल्टीकास्ट घटनाओं की नकल करने का एक तरीका है)। एक TCheckBox नियंत्रण का ऑनक्लिक इवेंट हस्ताक्षर "ऑब्जेक्ट का TNotifyEvent = प्रक्रिया (प्रेषक: TObject)" है;

instagram viewer

यदि आप चेकबॉक्स की स्थिति को बदलने से पहले NIL को OnClick ईवेंट पर असाइन करते हैं, तो मूल ऑनक्लिक इवेंट हैंडलिंग प्रक्रिया पर वापस लौटें - ऑनक्लिक इवेंट को निकाल नहीं दिया जाएगा।

प्रक्रिया SetCheckedState (स्थिरांक चेकबॉक्स: टीसीचेकबॉक्स; स्थिरांक check: बूलियन);

वर

 onClickHandler: TNotifyEvent;

शुरू

साथ में चेकबॉक्स कर

शुरू

 onClickHandler: = OnClick;

 ऑनक्लिक: = शून्य;

जाँची गई: = जाँच;
OnClick: = onClickHandler;
समाप्त;

समाप्त; 

इस प्रक्रिया का उपयोग सरल है:

// चेक किए गए राज्य को टॉगल करेंशुरू

 SetCheckedState (CheckBox1, Not CheckBox1.Checked);

समाप्त;

ऊपर SetCheckedState चेकबॉक्स 1 चेक बॉक्स की चेक की गई संपत्ति को टॉगल करता है।

संरक्षित हैक: ClicksDisabled: = true

OnClick को निष्पादित करने से रोकने का दूसरा तरीका, जब आप प्रोग्रामेटिक रूप से चेकबॉक्स की चेक की गई प्रॉपर्टी को बदलते हैं, तो "हिडन" (संरक्षित) का लाभ उठाना है ClicksDisabled संपत्ति।

TCheckBox की SetState प्रक्रिया को देखने से जो कि जब भी जाँच की गई संपत्ति बदल जाती है, तो ClicksDisabled सही नहीं होने पर OnClick निकाल दिया जाता है।

चूंकि ClicksDisabled संरक्षित है, इसलिए आप इसे अपने से एक्सेस नहीं कर सकते कोड.

सौभाग्य से, संरक्षित हैक तकनीक आपको डेल्फी नियंत्रण के उन छिपे हुए / संरक्षित गुणों तक पहुंचने में सक्षम बनाती है।

किसी घटक के एक्सेस किए गए संरक्षित सदस्य विषय पर अधिक जानकारी प्रदान करते हैं।

आपको जो करने की आवश्यकता है, वह उसी यूनिट में TCheckBox को विस्तारित करने वाले एक साधारण डमी वर्ग को घोषित करने के लिए है जहां आप ClicksDisabled संपत्ति का उपयोग करेंगे।

एक बार जब आप ClicksDisabled पर अपने हाथों को प्राप्त करते हैं, तो बस इसे सही पर सेट करें, चेक की गई प्रॉपर्टी को बदलें, फिर ClicksDisabled को झूठी (डिफ़ॉल्ट मान) पर सेट करें:

प्रकार


 TCheckBoxEx = वर्ग (TCheckBox);


 ...


साथ में TCheckBoxEx (CheckBox1) dobegin

 ClicksDisabled: = true;

 चेक किया गया: = चेक नहीं किया गया;

 ClicksDisabled: = false;

समाप्त;

नोट: उपरोक्त कोड संरक्षित ClicksDisabled संपत्ति का उपयोग करके "चेकबॉक्स 1" नामक चेकबॉक्स की चेक की गई संपत्ति को टॉगल करता है।

डेल्फी के साथ बिल्डिंग एप्लीकेशन

  • डेल्फी डेटाबेस प्रोग्रामिंग के लिए शुरुआती गाइड
  • डेल्फी अनुप्रयोगों में मूल चार्ट का घालमेल
  • रन टाइम में कंट्रोल को कैसे मूव और रिसाइज करें
  • मल्टीफ़्रेडड डेल्फी डेटाबेस क्वेरीज़