Delphi - Using the TApplicationEvents OnShortCut event to detect Alt+C key presses

杀马特。学长 韩版系。学妹 提交于 2019-12-04 12:24:58

问题


I am using TApplicationEvents OnShortCut event to get application keyboard short cuts in a Delphi program.

Using the following code:

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey; var Handled: Boolean) ;
begin
   if (Msg.CharCode = VK_F9) then
   begin
     ShowMessage('F9 pressed!') ;
     Handled := True;
   end;
end;

Question:

How do I detect when 'ALT C' has been pressed ?


回答1:


Like so:

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;

Please note that using Alt and some key only is a bad choice for a shortcut, as the system uses these to activate menu items or dialog controls.




回答2:


Or you can create simple TAction, they eats shortcuts before others.



来源:https://stackoverflow.com/questions/734990/delphi-using-the-tapplicationevents-onshortcut-event-to-detect-altc-key-press

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!