Delphi – использование события TApplicationEvents OnShortCut для обнаружения нажатий клавиш Alt+C
Вопрос
Я использую событие TApplicationEvents OnShortCut для получения сочетаний клавиш приложения в программе Delphi.
Используя следующий код:
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean) ;
begin
if (Msg.CharCode = VK_F9) then
begin
ShowMessage('F9 pressed!') ;
Handled := True;
end;
end;
Вопрос:
Как определить, когда была нажата клавиша «ALT C»?
Решение
Вот так:
procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
var Handled: Boolean);
begin
if (Msg.CharCode = Ord('C'))
and (HiWord(Msg.KeyData) and KF_ALTDOWN <> 0)
then begin
ShowMessage('Alt+C pressed!') ;
Handled := TRUE;
end;
end;
Обратите внимание, что использование только Alt и некоторых клавиш — плохой выбор для сочетания клавиш, поскольку система использует их для активации пунктов меню или элементов управления диалогом.
Другие советы
Или можно создать простой TAction, он съедает ярлыки раньше других.
Не связан с StackOverflow