如何在Delphi中判断是什么设备触发了特定事件



我想知道是否有一种简单的方法可以判断哪个输入设备触发了特定的GUI事件。

例如:TButton.OnClick事件被激发。用户是通过键盘按下触发的(快捷键,默认按钮为Enter键,聚焦按钮为space键等)还是通过鼠标点击触发的?有什么简单的方法可以告诉你吗?

我想知道的原因是,当用户使用鼠标启动同样可以使用键盘执行的操作时,我可以在我们的一些应用程序中实现键盘使用提示。我们车间的系统处于灰尘/肮脏的环境中,老鼠在其中往往无法很好地支撑。此外,在许多情况下,鼠标根本没有那么大的使用空间。(不,没有数字键盘的键盘不是一个解决方案。它们过于依赖。)

然而,由于我们的应用程序在Windows中运行,用户倾向于像在家一样简单地使用程序——用鼠标。这并没有什么特别的问题,但我们已经努力优化输入工作流程,使其对键盘友好。如果有一种低影响的方式向我们的用户表明,有一种方法可以让他们在不必抓鼠标的情况下做他们正在做的事情,那就太好了。

无法从OnClick内部判断。但是,您也可以将事件附加到控件上,当鼠标在控件上滚动时,该控件将触发,这可能更适合您尝试执行的操作。查看OnMouseEnterOnMouseLeave事件。此外,如果您真的希望在单击鼠标时发生特定的事情,可以将其附加到OnMouseUp

相关内容

  • 没有找到相关文章

最新更新