为菜单项设置"仅查看"快捷方式?

Edw*_*Yip 5 delphi

我们知道如果我们将一个快捷方式(例如,Ctrl + F2)设置为TMenuItem,一旦按下指定的快捷方式,菜单项将自动执行,并且在显示菜单时也会显示快捷方式描述.

但有没有办法让菜单项上的快捷方式描述可见,但菜单不会自动响应快捷方式?

你可能会问我为什么要这样,这是情况:

在多文档(如firefox的多个选项卡)程序中,有多个TPopupMenu实例,因此多个TMenuItem对象具有相同的快捷方式,但我只希望活动文档窗口中的菜单项响应快捷方式.


编辑1:对不起,我想简化我的问题并且我错误地描述了 - 实际上,我使用TActionList并将操作链接到菜单项.


编辑2:刚刚发现:我认为我可以使用TApplicationEvents.OnShortCut事件来拦截快捷方式,然后将它们发送到菜单/操作......我会尝试并在我得到结果时更新我的​​问题.

Ser*_*yuz 6

使用选项卡(#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了菜单项或操作的属性本身,否则不会触发单击/执行事件.