?? uselkeyform.pas
字號:
{ 鍵盤設定窗體單元 }
unit USelKeyForm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, UBox;
type
TSelectKeyForm = class(TForm)
GroupBox: TGroupBox;
ButtonOk: TButton;
ButtonCancel: TButton;
LabelDown: TLabel;
LabelLeft: TLabel;
LabelRight: TLabel;
LabelChange: TLabel;
LabelSpeed: TLabel;
EditDown: TEdit;
EditLeft: TEdit;
EditRight: TEdit;
EditChange: TEdit;
EditSpeed: TEdit;
procedure EditDownKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EditLeftKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EditRightKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EditChangeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure EditSpeedKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure ButtonOkClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
function SetEditKey(Editor: TEdit; Key: Word):boolean;
public
{ Public declarations }
end;
var
SelectKeyForm: TSelectKeyForm;
ALeftKey,
ARightKey,
ADownKey,
AChangeKey,
ADirectDownKey : Word;
implementation
{$R *.DFM}
function TSelectKeyForm.SetEditKey(Editor: TEdit; Key: Word):boolean;
begin
Result := true;
if Chr(Key) in ['0'..'9','a'..'z','A'..'Z'] then
Editor.Text := UpCase(Chr(Key)) + '鍵'
else
case Key of
VK_SPACE:
Editor.Text := '空格鍵';
VK_LEFT:
Editor.Text := '左方向鍵';
VK_RIGHT:
Editor.Text := '右方向鍵';
VK_DOWN:
Editor.Text := '下方向鍵';
VK_UP:
Editor.Text := '上方向鍵';
VK_CONTROL:
Editor.Text := 'Ctrl鍵';
VK_SHIFT:
Editor.Text := 'Shift鍵';
else
begin
Result := false;
Editor.Text := '無效鍵';
end
end;
Editor.SelStart := Length(Editor.Text);
end;
procedure TSelectKeyForm.EditDownKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if SetEditKey(EditDown,Key) then
ADownKey := Key;
end;
procedure TSelectKeyForm.EditLeftKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if SetEditKey(EditLeft,Key) then
ALeftKey := Key;
end;
procedure TSelectKeyForm.EditRightKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if SetEditKey(EditRight,Key) then
ARightKey := Key;
end;
procedure TSelectKeyForm.EditChangeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if SetEditKey(EditChange,Key) then
AChangeKey := Key;
end;
procedure TSelectKeyForm.EditSpeedKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if SetEditKey(EditSpeed,Key) then
ADirectDownKey := Key;
end;
procedure TSelectKeyForm.FormShow(Sender: TObject);
begin
SetEditKey(EditDown,DownKey);
SetEditKey(EditLeft,LeftKey);
SetEditKey(EditRight,RightKey);
SetEditKey(EditChange,ChangeKey);
SetEditKey(EditSpeed,DirectDownKey);
ADownKey := DownKey;
ALeftKey := LeftKey;
ARightKey := RightKey;
AChangeKey := ChangeKey;
ADirectDownKey := DirectDownKey;
end;
procedure TSelectKeyForm.ButtonOkClick(Sender: TObject);
begin
DownKey := ADownKey;
LeftKey := ALeftKey;
RightKey := ARightKey;
ChangeKey := AChangeKey;
DirectDownKey := ADirectDownKey;
end;
procedure TSelectKeyForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if (EditDown.Text = '無效鍵') or
(EditLeft.Text = '無效鍵') or
(EditRight.Text = '無效鍵') or
(EditSpeed.Text = '無效鍵') or
(EditChange.Text = '無效鍵') then
begin
MessageBox(Handle,'您設置了無效鍵,請重新設置!','提示',48);
CanClose := false;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -