如何模拟按下按钮?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何模拟按下按钮?相关的知识,希望对你有一定的参考价值。
我想测试一些表格。有没有办法模拟按下确定(或取消)按钮,以便按下按钮并触发与之关联的事件处理程序?
答案
最干净的方法是调用按钮的Click方法。由于以下原因,这比替代方案更好:
- 您可以阅读OnClick属性,检查它不是nil,然后调用该方法。但这似乎毫无意义,因为Click方法已经做到了。重复此代码毫无意义。
- 您可以直接调用事件处理程序,但这需要您的代码知道它。这意味着与实现细节的不期望的耦合程度。
- 调用
Click
会复制用户单击时实际发生的情况。当用户按下按钮时会发生这种情况。例如,它处理与按钮关联的任何操作。它设置窗体ModalResult属性。等等。
另一答案
btn_ok.click
或btn_okClick(sender);
另一答案
调用OnClick
事件处理程序不会调用Delphi的默认事件处理程序,而只调用用户实现的处理程序。我认为你应该创建自己的类来自TCustomButton
,并实现一个调用Click
方法的函数(它受到保护)。
另一答案
TSpeedButton的更正:
@David Heffernan描述的行为并不完全适用于组中的速度按钮。调用Click方法似乎不会影响按钮的“Down”状态。
为了解决这个问题,我使用了以下代码:
MyButton.Click;
MyButton.Down := True;
另一答案
最好使用Button =>的PerformClick()
方法
button1.PerfomClick()
如果您的Button未处于正确的单击状态(启用为false或不可见),则不会执行click eventmethod。
以上是关于如何模拟按下按钮?的主要内容,如果未能解决你的问题,请参考以下文章