5

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」が押されたことを検出するにはどうすればよいですか?

4

2 に答える 2

10

そのようです:

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 と一部のキーのみをショートカットとして使用することは不適切な選択であることに注意してください。

于 2009-04-09T17:26:16.473 に答える
2

または、単純なTActionを作成することもできます。彼らは、他の人よりも先にショートカットを食べます。

于 2009-04-09T18:07:10.760 に答える