⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setfrm.pas

📁 delphi俄罗斯方块delphi俄罗斯方块
💻 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 + -