7

我想在我的应用程序中有一个快捷键组合(如 Ctrl+Alt+D)来调用一个函数,但我不希望该快捷键出现在任何菜单上。是否可以在您的应用程序中提供不可见的快捷方式?

4

2 回答 2

12

你可以使用组件的OnShortCut事件TApplicationEvents来完成这个任务

检查此代码

procedure TForm1.ApplicationEvents1ShortCut(var Msg: TWMKey;
  var Handled: Boolean);
begin
  if (Msg.CharCode = Ord('D')) and (HiWord(Msg.KeyData) and KF_ALTDOWN <> 0) and  (GetKeyState(VK_CONTROL) < 0) then
  begin
    ShowMessage('Ctrl+Alt+D Pressed') ;
    Handled := true;
  end;
end;
于 2010-07-25T20:58:14.537 回答
8

是的,这是可能的。您必须在表单中添加一个 TAction 类的对象。您可以为 Taction 指定键盘快捷键,然后将代码放入 TAction 的 OnExecute 事件中。

请注意,您不能将 Taction 直接添加到您的表单中,您必须在您的表单上放置一个 TactionList,然后您可以将 Taction 添加到您的 TActionList。

于 2010-07-25T20:56:41.130 回答