delphi 快捷键设置控件: THotKey


本文整理自网络,侵删。

 
运行效果图:

 

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.

来源:https://my.oschina.net/hermer/blog/319425

相关阅读 >>

Delphi 配置驱动程序(firedac)

Delphi中比较两个字符串相似性的百分比算法

Delphi关于小数位精度的问题

Delphi access 加密方法

Delphi获取当前计算机所有盘符

xe7提示找不到sharedactivitycontext函数

Delphi fdquery 判断记录为空

Delphi 英文单词第一个字母大写

Delphi ticon保存ico文件时失真的解决办法

Delphi判断系统是否安装tcp/ip协议

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...