Delphi – использование события TApplicationEvents OnShortCut для обнаружения нажатий клавиш Alt+C

StackOverflow https://stackoverflow.com/questions/734990

  •  09-09-2019
  •  | 
  •  

Вопрос

Я использую событие 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, он съедает ярлыки раньше других.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top