【发布时间】:2012-07-24 05:39:27
【问题描述】:
假设我有一个表单,上面有一个菜单栏。我在菜单栏上有一个项目,TMenuItem,我可以为其分配一个快捷键组合,例如 Ctrl+I。但是,当我为TMenuItem 分配ShortCut 属性时,它似乎只是更改了菜单项的视觉外观以显示快捷方式代码,而不是自动侦听要按下的快捷方式键并触发我的ActionManager 代码.
我的 google-fu 今天似乎失败了,我只找到有关如何为 windows 分配全局热键的文章,而不是如何分配仅适用于活动表单的特定于应用程序的热键。
谁能为我概述添加热键所需的步骤,而不仅仅是在菜单中添加快捷方式属性。我在想某个地方我可能需要将表单设置为监听键盘输入并捕获按键并响应它?但我不完全确定 Delphi 的方法是在哪里或做什么。
【问题讨论】:
-
通常情况下,随心所欲地做是没有问题的。它只是自动工作。由于您使用的是操作管理器,因此您应该使用
TAction的ShortCut属性,而不是TMenuItem。 -
是的,只需分配 ShortCut 属性就可以了。
-
将菜单项视为“一种动态构建的方式来呈现我的静态定义的操作”,因此,我设置了我的操作,而不是我的菜单项属性。菜单项属性源自操作列表或操作管理器,并向外传播。
-
@AndreasRejbrand 是的,通过操作管理器工作,谢谢 =) ...但是有一种方法可以让自己的用户定义快捷方式想要什么,比如自定义快捷方式?