delphikeyboardautorepeattaction

Delphi: How do I stop TAction shortcut keys autorepeating?


I'm using a Delphi TActionList, with Shortcut Keys for some actions.

I want to prevent certain actions from being triggered multiple times by keyboard auto-repeat, but I do not want to affect auto-repeat operation globally. What's the best way of doing this?

Clarification: I still need to handle multiple fast keypresses - it's only the keypresses generated by auto-repeat that I want to ignore.


Solution

  • Intercept the WM_KEYDOWN messages, and look at bit 30 to see if it is auto-repeating. If it is, just don't pass on the message as usual and it will not be seen.

    You may need to enable form key-preview to make this work.