Как запустить событие KeyPreview, когда форма имеет TActionMainMenuBar - PullRequest
1 голос
/ 23 февраля 2010

Когда я устанавливаю свойство KeyPreview = TRUE в моей главной форме (MDI Parent), события OnKeyDown, OnKeyUp или OnKeyPress не запускаются. При нажатии клавиш я могу перемещаться по главному меню (TActionMenuBar). Похоже, строка меню контролирует ключевые события.

Как вызвать событие, когда пользователь нажимает клавишу (например, клавишу VK_RETURN)?

Я использую Delphi 2009

1 Ответ

0 голосов
/ 23 февраля 2010

Из комментариев я вижу, что вы хотите выполнить определенное действие (например, открыть форму) при нажатии определенной клавиши.

Для этого вы можете назначить вашу горячую клавишу на TAction и написать соответствующий код в TAction.OnExecute

Шаги:

  1. Бросить TActionManager (или TActionList)
  2. Дважды щелкните по нему (появится редактор TActionManager). Нажмите кнопку «Новое действие».
  3. Установите для свойства ShortCut желаемое значение.
  4. Введите соответствующий код в OnExecute событие.

Обратите внимание, что на шаге 3. (возможно) у вас (и, скорее всего, у ваших пользователей) будут проблемы с назначением клавиши Enter чему-то столь необычному, как открытие формы. «Enter» имеет очень четкое значение в Windows.

Я бы предложил назначить функциональную клавишу (обычно F2-F9) и / или Ctrl + [первая буква имени вашей формы]

НТН

...