मैं कुछ रूपों का परीक्षण करना चाहता हूं। क्या ओके (या रद्द करें) बटन के प्रेस को अनुकरण करने का कोई तरीका है ताकि बटन दबाया जा सके और इसके साथ जुड़े ईवेंट हैंडलर को आग लग जाए?मैं बटन के प्रेस को अनुकरण कैसे कर सकता हूं?
उत्तर
सबसे साफ तरीका बटन की क्लिक विधि को कॉल करना है। यह इन कारणों के विकल्पों से बेहतर है:
- आप ऑनक्लिक संपत्ति पढ़ सकते हैं, जांचें कि यह शून्य नहीं था, और फिर विधि को कॉल करें। लेकिन यह क्लिक व्यर्थ लगता है क्योंकि क्लिक विधि पहले से ही यही करती है। इस कोड को डुप्लिकेट करने का कोई मतलब नहीं है।
- और आप ईवेंट हैंडलर को सीधे कॉल कर सकते हैं, लेकिन इसके लिए आपके कोड को इसके बारे में जानकारी होगी। यह कार्यान्वयन विवरण के युग्मन के एक अवांछित स्तर का तात्पर्य है।
- कॉलिंग
Click
उपयोगकर्ता द्वारा क्लिक किए जाने पर वास्तव में क्या होता है इसकी प्रतिलिपि बनाता है। यह होता है जब उपयोगकर्ता बटन दबाता है। यह बटन के साथ जुड़े किसी भी क्रिया से संबंधित है, उदाहरण के लिए। यह रूपों ModalResult संपत्ति सेट करता है। और इसी तरह।
+1, महान जानकारी..इसने कभी सोचा होगा, – PresleyDias
यह वही है जो मैं चाहता था। मैंने इसका परीक्षण किया और यह काम करता है, जिससे मेरे लिए फॉर्मों का परीक्षण करना आसान हो जाता है। आपका बहुत बहुत धन्यवाद! – Arnold
btn_ok.click
या btn_okClick(sender);
कॉलिंग OnClick
ईवेंट हैंडलर डेल्फी के डिफ़ॉल्ट ईवेंट हैंडलर फोन नहीं है, लेकिन सिर्फ उपयोगकर्ता द्वारा कार्यान्वित एक। मुझे लगता है कि आपको अपनी खुद की कक्षा TCustomButton
से व्युत्पन्न करनी चाहिए, और Click
विधि (यह संरक्षित है) को कॉल करने वाले फ़ंक्शन को लागू करना चाहिए।
'TCustomButton.Click' सार्वजनिक है, सुरक्षित नहीं है। –
हां, बस 'टीबीटन' उदाहरण पर 'क्लिक करें' पर कॉल करें। व्युत्पन्न की कोई ज़रूरत नहीं है। –
यह वीसीएल में सार्वजनिक है, और यह फायरमोनकी में संरक्षित है। – naXa
यह बटन =>
button1.PerfomClick()
की PerformClick()
विधि का उपयोग करने के लिए अपने बटन क्लिक करने के लिए (झूठी या दिखाई नहीं सक्षम), यह क्लिक eventmethod प्रदर्शन नहीं करेगा सही स्थिति में नहीं है, तो बेहतर है।
वीसीएल में 'PerformClick' नहीं है। WinForms में एक 'PerformClick' है। शायद यही वह है जिसका आप जिक्र कर रहे हैं। –
[डेल्फी-गुई-परीक्षण-और-मोडल-रूप] के लिए यह उत्तर भी देखें (http://stackoverflow.com/a/6574035/576719)। –
आप कितना सिमुलेशन चाहते हैं? क्या माउस हिलना चाहिए? क्या स्क्रीन पर बटन दबाया जाना चाहिए? क्या बटन को 'wm_LButtonDown' जैसे संदेश प्राप्त हो सकते हैं? –
@ एलयू आरडी, सूचक के लिए धन्यवाद! मैंने बस सोचा कि मोडल रूपों का परीक्षण कैसे करें। इससे मदद मिलती है। – Arnold