2012-03-05 23 views
5

मैं कुछ रूपों का परीक्षण करना चाहता हूं। क्या ओके (या रद्द करें) बटन के प्रेस को अनुकरण करने का कोई तरीका है ताकि बटन दबाया जा सके और इसके साथ जुड़े ईवेंट हैंडलर को आग लग जाए?मैं बटन के प्रेस को अनुकरण कैसे कर सकता हूं?

+2

[डेल्फी-गुई-परीक्षण-और-मोडल-रूप] के लिए यह उत्तर भी देखें (http://stackoverflow.com/a/6574035/576719)। –

+2

आप कितना सिमुलेशन चाहते हैं? क्या माउस हिलना चाहिए? क्या स्क्रीन पर बटन दबाया जाना चाहिए? क्या बटन को 'wm_LButtonDown' जैसे संदेश प्राप्त हो सकते हैं? –

+0

@ एलयू आरडी, सूचक के लिए धन्यवाद! मैंने बस सोचा कि मोडल रूपों का परीक्षण कैसे करें। इससे मदद मिलती है। – Arnold

उत्तर

17

सबसे साफ तरीका बटन की क्लिक विधि को कॉल करना है। यह इन कारणों के विकल्पों से बेहतर है:

  • आप ऑनक्लिक संपत्ति पढ़ सकते हैं, जांचें कि यह शून्य नहीं था, और फिर विधि को कॉल करें। लेकिन यह क्लिक व्यर्थ लगता है क्योंकि क्लिक विधि पहले से ही यही करती है। इस कोड को डुप्लिकेट करने का कोई मतलब नहीं है।
  • और आप ईवेंट हैंडलर को सीधे कॉल कर सकते हैं, लेकिन इसके लिए आपके कोड को इसके बारे में जानकारी होगी। यह कार्यान्वयन विवरण के युग्मन के एक अवांछित स्तर का तात्पर्य है।
  • कॉलिंग Click उपयोगकर्ता द्वारा क्लिक किए जाने पर वास्तव में क्या होता है इसकी प्रतिलिपि बनाता है। यह होता है जब उपयोगकर्ता बटन दबाता है। यह बटन के साथ जुड़े किसी भी क्रिया से संबंधित है, उदाहरण के लिए। यह रूपों ModalResult संपत्ति सेट करता है। और इसी तरह।
+0

+1, महान जानकारी..इसने कभी सोचा होगा, – PresleyDias

+0

यह वही है जो मैं चाहता था। मैंने इसका परीक्षण किया और यह काम करता है, जिससे मेरे लिए फॉर्मों का परीक्षण करना आसान हो जाता है। आपका बहुत बहुत धन्यवाद! – Arnold

1

कॉलिंग OnClick ईवेंट हैंडलर डेल्फी के डिफ़ॉल्ट ईवेंट हैंडलर फोन नहीं है, लेकिन सिर्फ उपयोगकर्ता द्वारा कार्यान्वित एक। मुझे लगता है कि आपको अपनी खुद की कक्षा TCustomButton से व्युत्पन्न करनी चाहिए, और Click विधि (यह संरक्षित है) को कॉल करने वाले फ़ंक्शन को लागू करना चाहिए।

+5

'TCustomButton.Click' सार्वजनिक है, सुरक्षित नहीं है। –

+0

हां, बस 'टीबीटन' उदाहरण पर 'क्लिक करें' पर कॉल करें। व्युत्पन्न की कोई ज़रूरत नहीं है। –

+0

यह वीसीएल में सार्वजनिक है, और यह फायरमोनकी में संरक्षित है। – naXa

-1

यह बटन =>

button1.PerfomClick() 

की PerformClick() विधि का उपयोग करने के लिए अपने बटन क्लिक करने के लिए (झूठी या दिखाई नहीं सक्षम), यह क्लिक eventmethod प्रदर्शन नहीं करेगा सही स्थिति में नहीं है, तो बेहतर है।

+4

वीसीएल में 'PerformClick' नहीं है। WinForms में एक 'PerformClick' है। शायद यही वह है जिसका आप जिक्र कर रहे हैं। –

संबंधित मुद्दे