我想測試一些表單。有沒有辦法模擬Ok(或Cancel)按鈕的按下,以便按下按鈕並觸發與其關聯的事件處理程序?如何模擬按鈕按下?
回答
最簡潔的方法是調用按鈕的Click方法。這比以下原因更好:
- 您可以閱讀OnClick屬性,檢查它是否爲零,然後調用該方法。但是這看起來似乎毫無意義,因爲Click方法已經做到了。沒有重複此代碼的意思。
- 而且你可以直接調用事件處理程序,但這需要你的代碼具有它的知識。這意味着對實施細節的耦合程度不理想。
- 調用
Click
可以複製用戶點擊時實際發生的情況。它是當用戶按下按鈕時會發生什麼。例如,它處理與按鈕關聯的任何操作。它設置形式ModalResult屬性。等等。
+1,很棒的信息..永遠不會想到它, – PresleyDias 2012-03-05 09:06:50
這正是我想要的。我對它進行了測試,它的工作原理讓我更容易測試表單。非常感謝! – Arnold 2012-03-05 20:44:20
btn_ok.click
或btn_okClick(sender);
調用OnClick
事件處理程序將不會調用Delphi的默認事件處理程序,而只是由用戶實施的一個。我認爲你應該從TCustomButton
創建你自己的類,並實現一個調用Click
方法的函數(它受保護)。
'TCustomButton.Click'是公共的,不受保護。 – 2012-03-05 07:59:06
是的,只需在'TButton'實例上調用'Click'即可。不需要派生。 – 2012-03-05 08:06:39
它在VCL中是公共的,它在Firemonkey中受到保護。 – naXa 2014-06-28 20:22:36
這是更好地使用按鈕=>
button1.PerfomClick()
的PerformClick()
方法如果您的按鈕是不是在正確的狀態,單擊(啓用虛假或不可見的),也不會進行點擊eventmethod。
VCL中沒有'PerformClick'。在WinForms中有一個'PerformClick'。也許這就是你所指的。 – 2012-03-05 10:00:34
- 1. 模擬按鈕按下
- 2. 如何在Android模擬器中模擬按下home按鈕
- 3. Windows Phone「Home」按鈕按下模擬
- 4. NSTextField模擬返回按下按鈕
- 5. 如何模擬按下ARC
- 6. 模擬鼠標按下按鈕(按鈕4和5)
- 7. LibGDX:如何模擬按下Android後退按鈕
- 8. 如何模擬按鈕在窗體中按下視覺?
- 9. 如何模擬每2秒按下一次「Page Down」按鈕?
- 10. Android模擬按鈕按
- 11. 如何在wpf中模擬按鍵集中在treeview上按下F2按鈕?
- 12. 如何捏按鈕按下按鈕?
- 13. Android:如何模擬後退按鈕
- 14. 如何模擬QFileDialog的取消按鈕?
- 15. 如何模擬圖片按鈕點擊
- 16. 如何模擬點擊按鈕編程
- 17. Flex - 用於模擬按鍵的按鈕
- 18. 模擬鍵盤按鈕按[SDL庫]
- 19. c#Web瀏覽器模擬按鈕按
- 20. Android - 如何在alertdialog中按下按鈕並按下按鈕是或否按鈕
- 21. 模擬點擊按鈕
- 22. 模擬TDBNavigator按鈕單擊
- 23. 模擬按鈕點擊
- 24. 模擬點擊按鈕
- 25. Android - 模擬後退按鈕
- 26. iOS單元測試:模擬主頁按下按鈕等
- 27. 在Android模擬器上按下按鈕時發出通知
- 28. 在Android模擬器上按下相機按鈕
- 29. 模擬一個Backspace按鈕在c#中按下空白ActiveSource
- 30. Android模擬器屏幕在按下按鈕後變爲空白
也看到這個答案爲[Delphi的貴測試和模態-形式](http://stackoverflow.com/a/6574035/576719)。 – 2012-03-05 07:03:50
你想要的模擬精度如何?鼠標移動了嗎?按鈕是否顯示在屏幕上?該按鈕應該接收像'wm_LButtonDown'這樣的消息嗎? – 2012-03-05 14:47:16
@LU RD,感謝您的指點!我只是想知道如何測試模態表單。這有助於。 – Arnold 2012-03-05 20:47:45