zoukankan      html  css  js  c++  java
  • Delphi 注册快捷键

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, HTTPApp;
    
    type
      TForm1 = class(TForm)
        btn1: TButton;
        edt1: TEdit;
        edt2: TEdit;
        procedure btn1Click(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure HotKeyDown(var Msg: Tmessage); message WM_HOTKEY;   //声明
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
      HotKeyId_ALT_F9,HotKeyId_F9: Integer;   //声明一个全局变量
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.btn1Click(Sender: TObject);
    var
      lv_sMsg: string;
    begin
      lv_sMsg := Trim(edt1.Text);
      edt2.Text := HttpEncode(UTF8Encode(lv_sMsg));
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      //注: HotKeyId的合法取之范围是0x0000到0xBFFF之间, GlobalAddAtom函数得到的值
      //在0xC000到0xFFFF之间,所以减掉0xC000来满足调用要求。
      HotKeyId_ALT_F9 := GlobalAddAtom('HotKeyId_ALT_F9') - $C000;   //取得唯一标识ID
      RegisterHotKey(Handle, HotKeyId_ALT_F9, MOD_ALT, VK_F9);       //注册ALT+F9热键
    
      HotKeyId_F9 := GlobalAddAtom('HotKeyId_F9') - $C000;   //取得唯一标识ID
      RegisterHotKey(Handle, HotKeyId_F9, 0, VK_F9);         //注册F9热键
    end;
    
    procedure TForm1.HotKeyDown(var Msg: Tmessage);
    begin
      if (Msg.LparamLo = MOD_ALT) AND (Msg.LParamHi = VK_F9) then // 假设热键为 ALT+F9
      begin
         //事件
         ShowMessage('按压ALT+F9');
      end;
      if (Msg.LparamLo = 0) AND (Msg.LParamHi = VK_F9) then // 假设热键为 ALT+F9
      begin
         //事件
         ShowMessage('按压F9');
      end;
    end;
    
    procedure TForm1.FormDestroy(Sender: TObject);
    var
      m,n: integer;
      s1,s2: string;
    begin
      UnRegisterHotKey(handle, HotKeyId_ALT_F9);    //注销HotKey, 释放资源。
      UnRegisterHotKey(handle, HotKeyId_F9);
      m := GlobalFindAtom('HotKeyId_ALT_9');
      s1 := IntToStr(m);
      n := GlobalDeleteAtom(8);
      s2 := IntToStr(n);
    end;
    
    end.
    View Code
  • 相关阅读:
    EasyUI——常见用法总结
    递归算法(转)
    1215整理
    jQuery Ajax 实例 全解析(转)
    EL表达式 (详解)
    JSTL 核心标签库 使用(转)
    JSTL标签用法 详解(转)
    JDBC连接Oracle数据库时出现的ORA-12505错误及解决办法
    java中的基本jdbc中mvc基本示例
    Hibernate的QBC检索方式
  • 原文地址:https://www.cnblogs.com/studycode/p/13442049.html
Copyright © 2011-2022 走看看