📄 setfrm.pas
字号:
// tyysoft
// Author: tuyanyi
unit setFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtDlgs, ExtCtrls;
type
TsetForm = class(TForm)
StaticText1: TStaticText;
StaticText2: TStaticText;
StaticText3: TStaticText;
StaticText4: TStaticText;
edtLeft: TEdit;
edtRight: TEdit;
edtDown: TEdit;
edtChange: TEdit;
StaticText5: TStaticText;
edtPause: TEdit;
StaticText6: TStaticText;
StaticText7: TStaticText;
edtSpeedUp: TEdit;
edtSpeedDown: TEdit;
Button1: TButton;
Image1: TImage;
Button2: TButton;
procedure edtLeftKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtRightKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtDownKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtChangeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtPauseKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtSpeedUpKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edtSpeedDownKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
function KeytoChar(Key:Word):String;
{ Public declarations }
end;
var
setForm: TsetForm;
implementation
uses gm;
{$R *.dfm}
//虚键盘表
function TsetForm.KeytoChar(Key: Word): String;
begin
case Key of
VK_BACK: result:='Backspace';
vk_return: result:='Enter';
vk_pause: result:='Pause';
vk_capital: result:='Caps Lock';
vk_escape: result:='Esc';
vk_space: result:='Space Bar';
vk_prior: result:='PageUp';
vk_next: result:='PageDown';
vk_end: result:='End';
vk_home: result:='Home';
vk_left: result:='Left Arrow';
vk_up: result:='Up Arrow';
vk_right: result:='Right Arrow';
vk_down: result:='Down Arrow';
vk_snapshot: result:='Print';
vk_insert: result:='Insert';
vk_delete: result:='Delete';
vk_Help: result:='Help';
vk_lwin: result:='Left Windows';
vk_rwin: result:='Right Windows';
vk_numpad0: result:='NUM 0';
vk_numpad1: result:='NUM 1';
vk_numpad2: result:='NUM 2';
vk_numpad3: result:='NUM 3';
vk_numpad4: result:='NUM 4';
vk_numpad5: result:='NUM 5';
vk_numpad6: result:='NUM 6';
vk_numpad7: result:='NUM 7';
vk_numpad8: result:='NUM 8';
vk_numpad9: result:='NUM 9';
vk_multiply: result:='NUM *';
vk_add: result:='NUM +';
vk_subtract: result:='NUM -';
vk_divide: result:='NUM /';
vk_f1: result:='F1';
vk_f2: result:='F2';
vk_f3: result:='F3';
vk_f4: result:='F4';
vk_f5: result:='F5';
vk_f6: result:='F6';
vk_f7: result:='F7';
vk_f8: result:='F8';
vk_f9: result:='F9';
vk_f10: result:='F10';
vk_f11: result:='F11';
vk_f12: result:='F12';
vk_numlock: result:='NUM Lock';
vk_scroll: result:='Scroll';
vk_decimal:result:='NUM .';
48:result:='0';
49:result:='1';
50:result:='2';
51:result:='3';
52:result:='4';
53:result:='5';
54:result:='6';
55:result:='7';
56:result:='8';
57:result:='9';
192:result:='`';
189:result:='-';
187:result:='=';
220:result:='\';
219:result:='[';
221:result:=']';
186:result:=';';
222:result:=''';
188:result:=',';
190:result:='.';
191:result:='/';
else if (Key in [65..90]) then
result:=chr(Key)
else
result:='';
end;
//showmessage(inttostr(key));
end;
//按键设置(左)
procedure TsetForm.edtLeftKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtRight.Text)and(str<>edtDown.Text)and
(str<>edtChange.Text)and(str<>edtPause.Text)and(str<>edtSpeedUp.Text)and
(str<>edtSpeedDown.Text) then
begin
edtLeft.Text:=KeytoChar(key);
gmForm.KeyLeft:=Key;
end
else windows.Beep(100,200);
end;
//按键设置(右)
procedure TsetForm.edtRightKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtLeft.Text)and(str<>edtDown.Text)and
(str<>edtChange.Text)and(str<>edtPause.Text)and(str<>edtSpeedUp.Text)and
(str<>edtSpeedDown.Text) then
begin
edtRight.Text:=KeytoChar(key);
gmForm.KeyRight:=Key;
end
else windows.Beep(100,200);
end;
//按键设置(下)
procedure TsetForm.edtDownKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtRight.Text)and(str<>edtLeft.Text)and
(str<>edtChange.Text)and(str<>edtPause.Text)and(str<>edtSpeedUp.Text)and
(str<>edtSpeedDown.Text) then
begin
edtDown.Text:=KeytoChar(key);
gmForm.KeyDown:=Key;
end
else windows.Beep(100,200);
end;
//按键设置(变形)
procedure TsetForm.edtChangeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtRight.Text)and(str<>edtDown.Text)and
(str<>edtLeft.Text)and(str<>edtPause.Text)and(str<>edtSpeedUp.Text)and
(str<>edtSpeedDown.Text) then
begin
edtChange.Text:=KeytoChar(key);
gmForm.KeyChange:=Key;
end
else windows.Beep(100,200);
end;
//按键设置(暂停)
procedure TsetForm.edtPauseKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtRight.Text)and(str<>edtDown.Text)and
(str<>edtChange.Text)and(str<>edtLeft.Text)and(str<>edtSpeedUp.Text)and
(str<>edtSpeedDown.Text) then
begin
edtPause.Text:=KeytoChar(key);
gmForm.KeyPause:=Key;
end
else windows.Beep(100,200);
end;
//按键设置(加速)
procedure TsetForm.edtSpeedUpKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtRight.Text)and(str<>edtDown.Text)and
(str<>edtChange.Text)and(str<>edtLeft.Text)and(str<>edtLeft.Text)and
(str<>edtSpeedDown.Text) then
begin
edtSpeedUp.Text:=KeytoChar(key);
gmForm.KeySpeedUp:=Key;
end
else windows.Beep(100,200);
end;
//按键设置(减速)
procedure TsetForm.edtSpeedDownKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
str:string;
begin
str:=KeytoChar(Key);
if (str<>'')and(str<>edtRight.Text)and(str<>edtDown.Text)and
(str<>edtChange.Text)and(str<>edtLeft.Text)and(str<>edtSpeedUp.Text)and
(str<>edtLeft.Text) then
begin
edtSpeedDown.Text:=KeytoChar(key);
gmForm.KeySpeedDown:=Key;
end
else windows.Beep(100,200);
end;
//在编辑框中显示当前的按键
procedure TsetForm.FormShow(Sender: TObject);
begin
with gmForm do
begin
edtLeft.Text:=KeytoChar(KeyLeft);
edtRight.Text:=KeytoChar(KeyRight);
edtDown.Text:=KeytoChar(KeyDown);
edtChange.Text:=KeytoChar(KeyChange);
edtpause.Text:=KeytoChar(KeyPause);
edtSpeedUp.Text:=keytoChar(KeySpeedUp);
edtSpeedDown.Text:=Keytochar(KeySpeedDown);
end;
end;
procedure TsetForm.Button1Click(Sender: TObject);
begin
close;
end;
//更换图片
procedure TsetForm.Button2Click(Sender: TObject);
begin
if gmForm.OpenPictureDialog1.Execute then
begin
try
Image1.Picture.LoadFromFile(gmForm.OpenPictureDialog1.FileName);
gmForm.picBrick.Assign(Image1.Picture.Bitmap);
except
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -