新手 delphi 给程序添加快捷键问题

xiaoliang1201 2013-03-28 10:16:12
本人刚接触delphi编程,再做一个业务台程序,想给里面一些常用按键添加快捷键,类似于QQ的一些热键。望大神指点??
...全文
452 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
feiba7288 2013-03-28
  • 打赏
  • 举报
回复
引用 2 楼 xiaoliang1201 的回复:
引用
if (msg.LParamHi = VK_F2)
先谢谢啦!这里楼上创建的F2的快捷键,用的是VM_F2。要是创建别的快捷键也是VM+“相应键”吗??
是的,定义在Windows单元里面

VK_F1 = 112;
  {$EXTERNALSYM VK_F2}
  VK_F2 = 113;
  {$EXTERNALSYM VK_F3}
  VK_F3 = 114;
  {$EXTERNALSYM VK_F4}
  VK_F4 = 115;
  {$EXTERNALSYM VK_F5}
  VK_F5 = 116;
  {$EXTERNALSYM VK_F6}
  VK_F6 = 117;
  {$EXTERNALSYM VK_F7}
  VK_F7 = 118;
  {$EXTERNALSYM VK_F8}
  VK_F8 = 119;
  {$EXTERNALSYM VK_F9}
  VK_F9 = 120;
  {$EXTERNALSYM VK_F10}
  VK_F10 = 121;
  {$EXTERNALSYM VK_F11}
  VK_F11 = 122;
  {$EXTERNALSYM VK_F12}
  VK_F12 = 123;
xiaoliang1201 2013-03-28
  • 打赏
  • 举报
回复
引用
if (msg.LParamHi = VK_F2)
先谢谢啦!这里楼上创建的F2的快捷键,用的是VM_F2。要是创建别的快捷键也是VM+“相应键”吗??
feiba7288 2013-03-28
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    HotkeyID: integer;
    procedure WMHotkeyHandle(var Msg: TMessage); message WM_HOTKEY;
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  HotkeyID := GlobalAddAtom(Pchar('UserDefineHotKey')) - $C100;
  RegisterHotkey(Handle, HotkeyID, 0, VK_F2);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  UnregisterHotkey(Handle, HotkeyID);
  DeleteAtom(HotKeyID);
end;

procedure TForm1.WMHotkeyHandle(var Msg: TMessage);
begin
  if (msg.LParamHi = VK_F2) then
  begin
    msg.Result := 1;
    ShowMessage('You have press F2!');
  end;
end;

end.

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧