Delphi - Использование события OnShortCut TApplicationEvents для обнаружения нажатий клавиш Alt + C - PullRequest
4 голосов
/ 09 апреля 2009

Я использую событие 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?

Ответы [ 2 ]

8 голосов
/ 09 апреля 2009

Вроде так:

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

1 голос
/ 09 апреля 2009

Или вы можете создать простое TAction, они едят ярлыки раньше других.

...