什么是csClickEvents和csCaptureMouse?

时间:2010-08-21 08:16:43

标签: delphi vcl

我正在尝试理解Delphi 2007中的ControlStyle属性,但我无法掌握csClickEventscsCaptureMouse属性。

根据规范,csCaptureMouse使控件在单击时捕获鼠标事件,而csClickEvents使控件能够接收并回答鼠标点击。它还明确提到TButton不继承此属性(我已检查过源代码:确实如此)。

csCaptureMousecsClickEvents到底做了什么,有什么区别?谢谢你的回答。

1 个答案:

答案 0 :(得分:4)

csCaptureMouse意味着组件将接收MouseUp事件(在单击组件之后),即使鼠标已从组件的边界释放;

csClickEvents表示该组件生成OnClick事件。

这些选项不同。


关于为什么TButton不包含csClickEvents - 答案是:

  因为通过哪种机制   您收到TButton的点击次数   不同 - 它会生成点击事件   从BN_CLICKED窗口消息,   这是Windows的处理方式   按钮,而不是通过   WML_BUTTONDOWN,这是默认值   对于TControl。现在可能就是这样   你已经包含了csClickEvents   你会得到每个鼠标两次点击   点击,或者也许会有一个   丢弃,但你仍然可以得到   奇怪的行为。我没有钻研过   深深地知道了陷阱   打开csClickEvents但是我   不会认为它会很明显   航行。

我在New Zealand DUG archive

中找到了这个答案