cheat-engine/frameHotkeyConfigUnit.pas
cheatengine@gmail.com 4d297adfd2
2011-07-04 19:52:19 +00:00

190 lines
4.9 KiB
ObjectPascal

unit frameHotkeyConfigUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, cefuncproc;
type
TframeHotkeyConfig = class(TFrame)
Panel1: TPanel;
Label1: TLabel;
ListBox1: TListBox;
Panel2: TPanel;
Label2: TLabel;
Edit1: TEdit;
Button3: TButton;
Panel3: TPanel;
Label52: TLabel;
Label51: TLabel;
edtSHSpeed: TEdit;
edtSHSleep: TEdit;
Panel4: TPanel;
Label3: TLabel;
Edit4: TEdit;
Panel5: TPanel;
edtKeypollInterval: TEdit;
edtHotkeyDelay: TEdit;
Label4: TLabel;
Label5: TLabel;
procedure ListBox1Click(Sender: TObject);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
currentspeed: integer;
increasespeed: boolean;
procedure updatehotkey;
procedure updatespeed;
public
{ Public declarations }
newhotkeys: array [0..30] of tkeycombo;
newspeedhackspeed1: tspeedhackspeed;
newspeedhackspeed2: tspeedhackspeed;
newspeedhackspeed3: tspeedhackspeed;
newspeedhackspeed4: tspeedhackspeed;
newspeedhackspeed5: tspeedhackspeed;
speedupdelta: single;
slowdowndelta: single;
end;
implementation
{$R *.dfm}
procedure TFrameHotkeyConfig.UpdateSpeed;
begin
if panel4.Visible then
begin
if increasespeed then
begin
speedupdelta:=strtofloat(edit4.Text);
end
else
begin
slowdowndelta:=strtofloat(edit4.Text);
end
end;
if panel3.Visible then
begin
if currentspeed=1 then
begin
newspeedhackspeed1.speed:=StrToFloat(edtSHspeed.Text);
newspeedhackspeed1.sleeptime:=strtoint(edtSHSleep.Text);
end else
if currentspeed=2 then
begin
newspeedhackspeed2.speed:=StrToFloat(edtSHspeed.Text);
newspeedhackspeed2.sleeptime:=strtoint(edtSHSleep.Text);
end else
if currentspeed=3 then
begin
newspeedhackspeed3.speed:=StrToFloat(edtSHspeed.Text);
newspeedhackspeed3.sleeptime:=strtoint(edtSHSleep.Text);
end else
if currentspeed=4 then
begin
newspeedhackspeed4.speed:=StrToFloat(edtSHspeed.Text);
newspeedhackspeed4.sleeptime:=strtoint(edtSHSleep.Text);
end else
if currentspeed=5 then
begin
newspeedhackspeed5.speed:=StrToFloat(edtSHspeed.Text);
newspeedhackspeed5.sleeptime:=strtoint(edtSHSleep.Text);
end;
end;
if (listbox1.ItemIndex>=3) and (listbox1.itemindex<=7) then
begin
currentspeed:=listbox1.ItemIndex-2;
case currentspeed of
1:
begin
edtSHSpeed.text:=format('%.2f',[newspeedhackspeed1.speed]);
edtSHSleep.text:=inttostr(newspeedhackspeed1.sleeptime);
end;
2:
begin
edtSHSpeed.text:=format('%.2f',[newspeedhackspeed2.speed]);
edtSHSleep.text:=inttostr(newspeedhackspeed2.sleeptime);
end;
3:
begin
edtSHSpeed.text:=format('%.2f',[newspeedhackspeed3.speed]);
edtSHSleep.text:=inttostr(newspeedhackspeed3.sleeptime);
end;
4:
begin
edtSHSpeed.text:=format('%.2f',[newspeedhackspeed4.speed]);
edtSHSleep.text:=inttostr(newspeedhackspeed4.sleeptime);
end;
5:
begin
edtSHSpeed.text:=format('%.2f',[newspeedhackspeed5.speed]);
edtSHSleep.text:=inttostr(newspeedhackspeed5.sleeptime);
end;
end;
panel3.Visible:=true;
panel4.Visible:=false;
end else panel3.Visible:=false;
if (listbox1.ItemIndex=8) or (listbox1.ItemIndex=9) then
begin
increasespeed:=listbox1.itemindex=8;
if increasespeed then
edit4.Text:=format('%.2f',[speedupdelta])
else
edit4.Text:=format('%.2f',[slowdowndelta]);
panel4.visible:=true;
panel3.Visible:=false;
end else panel4.Visible:=false;
end;
procedure TFrameHotkeyConfig.updatehotkey;
begin
edit1.Text:=ConvertKeyComboToString(newhotkeys[listbox1.ItemIndex]);
updatespeed;
end;
procedure TframeHotkeyConfig.ListBox1Click(Sender: TObject);
begin
updatehotkey;
end;
procedure TframeHotkeyConfig.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var i: integer;
begin
if newhotkeys[listbox1.ItemIndex][4]=0 then
begin
for i:=0 to 4 do
if newhotkeys[listbox1.ItemIndex][i]=0 then
begin
newhotkeys[listbox1.ItemIndex][i]:=key;
break;
end else
if newhotkeys[listbox1.ItemIndex][i]=key then break;
end;
edit1.Text:=ConvertKeyComboToString(newhotkeys[listbox1.ItemIndex]);
end;
procedure TframeHotkeyConfig.Button3Click(Sender: TObject);
begin
zeromemory(@newhotkeys[listbox1.ItemIndex][0],10);
edit1.Text:=ConvertKeyComboToString(newhotkeys[listbox1.ItemIndex]);
edit1.SetFocus;
end;
end.