• 快捷键设置控件: THotKey [1]


    运行效果图:


    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ComCtrls;
    
    type
      TForm1 = class(TForm)
        HotKey1: THotKey;
        Memo1: TMemo;
        CheckBox1: TCheckBox;
        CheckBox2: TCheckBox;
        CheckBox3: TCheckBox;
        CheckBox4: TCheckBox;
        procedure FormCreate(Sender: TObject);
        procedure CheckBox1Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.CheckBox1Click(Sender: TObject);
    begin
      HotKey1.Modifiers := [];
      if CheckBox1.Checked then HotKey1.Modifiers := HotKey1.Modifiers + [hkShift];
      if CheckBox2.Checked then HotKey1.Modifiers := HotKey1.Modifiers + [hkCtrl];
      if CheckBox3.Checked then HotKey1.Modifiers := HotKey1.Modifiers + [hkAlt];
      if CheckBox4.Checked then HotKey1.Modifiers := HotKey1.Modifiers + [hkExt];
    end;
    
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Memo1.Clear;
      Memo1.Align := alTop;
      Memo1.ScrollBars := ssVertical;
      Memo1.Lines.Add('1、你现在看到的可不是 TEdit, 它是处理快捷键用的 HotKey 控件;');
      Memo1.Lines.Add('2、激活后, 输入几个字母试试;');
      Memo1.Lines.Add('3、按 Ctrl+*; * 表示任意键;');
      Memo1.Lines.Add('4、按 Ctrl+Alt+*;');
      Memo1.Lines.Add('5、按 Shift+Ctrl+* 或 Shift+Alt+* 都可以;');
      Memo1.Lines.Add('6、按 Shift+Ctrl+Alt+* 也可以;');
      Memo1.Lines.Add('7、但按 Shift+* 不可以; 因为 HotKey.InvalidKeys 默认禁止了它;');
      Memo1.Lines.Add('8、不过我们可以用 HotKey.Modifiers 打开它.');
    
      CheckBox1.Caption := 'hkShift';
      CheckBox2.Caption := 'hkCtrl';
      CheckBox3.Caption := 'hkAlt';
      CheckBox4.Caption := 'hkExt';
    
      CheckBox1.Checked := False;
      CheckBox2.Checked := False;
      CheckBox3.Checked := True;
      CheckBox4.Checked := False;
    
      CheckBox2.OnClick := CheckBox1.OnClick;
      CheckBox3.OnClick := CheckBox1.OnClick;
      CheckBox4.OnClick := CheckBox1.OnClick;
    end;
    
    end.
    
  • 相关阅读:
    [灵魂拷问]MySQL面试高频100问(工程师方向)
    前后端分离模式下的权限设计方案
    Netty实战:设计一个IM框架
    超实用,Linux中查看文本的小技巧
    Java面试,如何在短时间内做突击
    挑战10个最难回答的Java面试题(附答案)
    SpringBoot是如何动起来的
    Lab_2_SysOps_VPC_Linux_v2.5
    Lab_1_SysOps_Compute_Linux_v2.5
    change-resource-tags.sh
  • 原文地址:https://www.cnblogs.com/del/p/1113250.html
Copyright © 2020-2023  润新知