我想知道是否有一种简单的方法来判断哪个输入设备触发了特定的GUI事件。
例如:TButton.OnClick
事件被触发。用户是否通过键盘按下(快捷键,默认按钮为Enter
键,聚焦按钮为space
键等)触发它,或者是否通过鼠标单击触发?有什么简单的说法吗?
我想知道的原因是,当用户使用鼠标启动也可以通过键盘完成的操作时,我可以在我们的某些应用程序中实现键盘使用提示。我们在车间的系统处于相当多尘/肮脏的环境中,老鼠往往不能很好地保持它们。此外,在许多情况下,鼠标的使用空间不大。 (不,没有数字键盘的键盘不是解决方案。它们过于依赖。)
然而,由于我们的应用程序在Windows中运行,因此用户倾向于使用像在家一样的程序 - 使用鼠标。这没有什么特别的错误,但我们也努力优化输入工作流程,以便键盘友好。如果有一种低影响的方式向我们的用户表明他们有办法做他们正在做的事情而不必抓住鼠标,那就太好了。
答案 0 :(得分:4)
OnClick
内没有办法告诉你。但是,您还可以将事件附加到控件上,当鼠标滑过它时将触发该控件,这可能更适合您尝试执行的操作。查看OnMouseEnter
和OnMouseLeave
个活动。此外,如果您确实希望在单击鼠标时发生特定事件,则可以将其附加到OnMouseUp
。