procedure TForm1.FormCreate(Sender: TObject); begin Form1.KeyPreview:=true; end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if key = 17 then showmessage('你按了我设置的热键Ctrl了'); end;
//HotKey1的OnChange事件 procedure TForm1.HotKey1Change(Sender: TObject); begin if HotKey1.Tag = 0 then begin if HotKey1.HotKey = scCtrl then//只有Ctrl键按下 HotKey1.Tag := 1 else if HotKey1.HotKey = 0 then begin HotKey1.OnChange := nil; HotKey1.HotKey := scCtrl; HotKey1.OnChange := HotKey1Change; HotKey1.Tag := 1; end; end else begin if HotKey1.HotKey = 0 then//Ctrl键弹起 begin HotKey1.OnChange := nil; HotKey1.HotKey := scCtrl; HotKey1.OnChange := HotKey1Change; end; HotKey1.Tag := 0; end; end;
begin
Form1.KeyPreview:=true;
end;procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key = 17 then
showmessage('你按了我设置的热键Ctrl了');
end;
procedure TForm1.HotKey1Change(Sender: TObject);
begin
if HotKey1.Tag = 0 then
begin
if HotKey1.HotKey = scCtrl then//只有Ctrl键按下
HotKey1.Tag := 1
else if HotKey1.HotKey = 0 then
begin
HotKey1.OnChange := nil;
HotKey1.HotKey := scCtrl;
HotKey1.OnChange := HotKey1Change;
HotKey1.Tag := 1;
end;
end
else
begin
if HotKey1.HotKey = 0 then//Ctrl键弹起
begin
HotKey1.OnChange := nil;
HotKey1.HotKey := scCtrl;
HotKey1.OnChange := HotKey1Change;
end;
HotKey1.Tag := 0;
end;
end;