我们知道如果我们将一个快捷方式(例如,Ctrl + F2)设置为TMenuItem,一旦按下指定的快捷方式,菜单项将自动执行,并且在显示菜单时也会显示快捷方式描述.
但有没有办法让菜单项上的快捷方式描述可见,但菜单不会自动响应快捷方式?
你可能会问我为什么要这样,这是情况:
在多文档(如firefox的多个选项卡)程序中,有多个TPopupMenu实例,因此多个TMenuItem对象具有相同的快捷方式,但我只希望活动文档窗口中的菜单项响应快捷方式.
编辑1:对不起,我想简化我的问题并且我错误地描述了 - 实际上,我使用TActionList并将操作链接到菜单项.
编辑2:刚刚发现:我认为我可以使用TApplicationEvents.OnShortCut事件来拦截快捷方式,然后将它们发送到菜单/操作......我会尝试并在我得到结果时更新我的问题.
使用选项卡(#9)字符指示标准菜单中文本的缩写部分.您可以Caption通过编辑'dfm'或在运行时设置菜单项的属性或菜单项绑定的操作组件,以包含制表符:
procedure TForm1.FormCreate(Sender: TObject);
begin
Action1.Caption :=
Action1.Caption + #9 + ShortCutToText(ShortCut(VK_F2, [ssCtrl]));
Run Code Online (Sandbox Code Playgroud)
除非您还分配ShortCut了菜单项或操作的属性本身,否则不会触发单击/执行事件.
| 归档时间: |
|
| 查看次数: |
1359 次 |
| 最近记录: |