如何在表单具有TActionMainMenuBar时触发KeyPreview事件

时间:2010-02-23 10:09:12

标签: delphi delphi-2009

当我在我的主窗体(MDI Parent)上设置属性KeyPreview = TRUE时,OnKeyDown,OnKeyUp或OnKeyPress事件不会被触发。 按键时,我可以浏览主菜单(TActionMenuBar)。菜单栏似乎可以控制关​​键事件。

当用户按某个键(例如VK_RETURN键)时,如何触发事件?

我正在使用Delphi 2009

1 个答案:

答案 0 :(得分:0)

从评论中我看到,当按下某个键时,您想要执行某个操作(例如,打开表单)。

为此,您可以将快捷键分配给TAction并在TAction.OnExecute

中编写相应的代码

步骤:

  1. 放弃TActionManager(或TActionList
  2. 双击它(TActionManager的编辑器出现)。按“新建操作”按钮。
  3. ShortCut属性设置为所需的值。
  4. OnExecute事件中编写相应的代码。
  5. 请注意,在第3步(可能),您(很可能是您的用户)在将Enter键分配给打开表单等不常见的内容时会遇到问题。 “输入”在Windows中具有非常明确的含义。

    我建议分配一个功能键(通常为F2-F9)和/或Ctrl + [表格名称的第一个字母]

    HTH