一千萬個為什麽

搜索

如何禁用TAction.Shortcut或TMenuItem.Shortcut?

I'm developing a Word addin, and somehow the shortcuts defined in TAction.ShortCut are always trigged more than one time, and this is tricky to me and hard to solve, so I resort to TForm.OnKeyDown event and cleared all TAction.ShortCut properties, this approach works well, except that the shortcuts are not shown on the corresponding menu items, but I want them to be displayed on those menu items.

所以我想出了這個想法:為TMenuItem.Shortcut設置值,以便程序可以向最終用戶顯示快捷方式提示,並且不允許VCL處理這些快捷方式,而是在TForm.OnKeyDown中處理它們。所以我的問題是如何禁用TAction.Shortcut或TMenuItem.Shortcut?先謝謝你。

最佳答案

首先,您在 TActionTMenuItem 上都有 Enabled 屬性。只需將其設置為 False 即可。

接下來,不止一次觸發您的事件的一個可能原因是您可能正在使用 Application.ProcessMessages ;或者至少你正在使用的寫得很差的組件是這樣做的。對於使用Delphi特性應該非常謹慎,因為它會導致'重入'代碼(無意的遞歸)。

轉載註明原文: 如何禁用TAction.Shortcut或TMenuItem.Shortcut?