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.
So I come up this idea: Set values for TMenuItem.Shortcut so that the program can show the shortcut hint to the end user, and does not allow VCL to handle these shortcuts, instead, handle them in TForm.OnKeyDown. So my question is how to disable TAction.Shortcut or TMenuItem.Shortcut? Thank you in advance.
For a start, you have an
Enabledproperty on bothTActionandTMenuItem. Just set it toFalse.Next, one of the possible causes of your event being triggered more than once is that you may be using
Application.ProcessMessages; or at least a badly written component that you’re using is doing so. One should be very wary of using that Delphi feature because it can cause ‘re-entrant’ code (unintentional recursion).