📄 memorytrainerdesignunit.pas
字号:
//add the cheats
while tcheatlist(controls[i]).Count<length(frmmemorymodifier.trainerdata) do
tcheatlist(controls[i]).addcheat(frmmemorymodifier.trainerdata[tcheatlist(controls[i]).Count].hotkeytext,frmmemorymodifier.trainerdata[tcheatlist(controls[i]).Count].description,frmmemorymodifier.trainerdata[tcheatlist(controls[i]).Count].editvalue,frmmemorymodifier.trainerdata[tcheatlist(controls[i]).Count].hasedit);
end;
end
end;
procedure TfrmTrainerDesigner.MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
paintbox1.OnMouseup(sender,button,shift,twincontrol(sender).left+x,twincontrol(sender).top+y);
end;
procedure TfrmTrainerDesigner.MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
begin
paintbox1.OnMousemove(sender,shift,twincontrol(sender).left+x,twincontrol(sender).top+y);
end;
procedure TfrmTrainerDesigner.MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
if stretchhandle.Attached then stretchhandle.Detach;
if additem=0 then
begin
if ((sender is tlabel) or (sender is tedit)) and (twincontrol(sender).Parent is tcheat) then
sender:=twincontrol(sender).Parent;
if (sender is tcheat) and (tcheat(sender).Parent is tcheatlist) then
sender:=(tcheat(sender).Parent);
stretchhandle.Attach(tcontrol(sender));
selectedobject:=sender;
updateEditor;
end
else paintbox1.OnMouseDown(sender,button,shift,twincontrol(sender).left+x,twincontrol(sender).top+y);
end;
procedure TfrmTrainerDesigner.stretchhandleKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
var i: integer;
check: integer;
found: boolean;
begin
inherited;
case key of
vk_right:
begin
if ssshift in shift then
begin
stretchhandle.Width:=stretchhandle.Width+1;
stretchhandle.Left:=stretchhandle.Left-1;
end;
end;
vk_left:
begin
if ssshift in shift then
begin
stretchhandle.Width:=stretchhandle.Width-1;
stretchhandle.Left:=stretchhandle.Left+1;
end;
end;
vk_up:
begin
if ssshift in shift then
begin
stretchhandle.Width:=stretchhandle.height-1;
stretchhandle.Left:=stretchhandle.top+1;
end;
end;
vk_down:
begin
if ssshift in shift then
begin
stretchhandle.Width:=stretchhandle.height+1;
stretchhandle.Left:=stretchhandle.top-1;
end;
end;
vk_delete:
begin
for i:=0 to stretchhandle.ChildCount-1 do
stretchhandle.Children[i].Free;
stretchhandle.Detach;
end;
vk_escape:
begin
stretchhandle.Detach;
application.ProcessMessages;
frmtrainerdesigner.HorzScrollBar.Position:=0;
frmtrainerdesigner.VertScrollBar.Position:=0;
frmtrainerdesigner.width:=frmtrainerdesigner.width+1;
frmtrainerdesigner.height:=frmtrainerdesigner.height+1;
frmtrainerdesigner.width:=frmtrainerdesigner.width-1;
frmtrainerdesigner.height:=frmtrainerdesigner.height-1;
end;
ord('N'):
if ssctrl in shift then
begin
found:=false;
for i:=0 to frmTrainerDesigner.ControlCount-1 do
begin
if frmtrainerdesigner.Controls[i]=selectedobject then
begin
check:=i+1;
check:=check mod frmTrainerDesigner.ControlCount;
while (not found) and (check<>i) do
begin
if (frmtrainerdesigner.Controls[check] is tlabel) or
(frmtrainerdesigner.Controls[check] is tbutton) or
(frmtrainerdesigner.Controls[check] is tcheat) or
(frmtrainerdesigner.Controls[check] is tcheatlist) or
(frmtrainerdesigner.Controls[check] is timage) then
begin
found:=true;
stretchhandle.Detach;
stretchhandle.Attach(frmtrainerdesigner.Controls[check]);
selectedobject:=frmtrainerdesigner.Controls[check];
updateeditor;
break;
end;
inc(check);
check:=check mod frmTrainerDesigner.ControlCount;
end;
if found then break;
end;
end;
end;
end;
end;
procedure TfrmTrainerDesigner.FormCreate(Sender: TObject);
begin
stretchhandle:=tstretchhandle.Create(self);
stretchhandle.OnKeyDown:=stretchhandleKeyDown;
stretchhandle.OnDblClick:=stretchhandledblclick;
stretchhandle.PopupMenu:=popupmenu1;
// frmTrainerDesigner.KeyPreview:=true;
frmTrainerDesignObjectView:=tfrmTrainerDesignObjectView.create(self);
frmTrainerDesignControls:= tfrmTrainerdesignControls.create(self);
end;
procedure TfrmTrainerDesigner.FormShow(Sender: TObject);
begin
frmTrainerDesignControls.Left:=frmMemorymodifier.Left;
frmTrainerDesignControls.Width:=frmMemorymodifier.width;
frmTrainerDesignControls.top:=frmMemorymodifier.top-frmTrainerDesignControls.height;
frmTrainerDesignObjectView.show;
frmTrainerDesignControls.show;
frmTrainerDesignObjectView.valuelisteditor1.Strings.text:='';
frmTrainerDesignObjectView.valuelisteditor1.Col:=1;
end;
procedure TfrmTrainerDesigner.PaintBox1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
stretchhandle.Detach;
selectedobject:=nil;
frmTrainerDesignObjectView.ValueListEditor1.Strings.Text:='';
if additem<>0 then
begin
startx:=x;
starty:=y;
drawrect.Left:=x;
drawrect.Top:=y;
drawrect.Right:=x;
drawrect.Bottom:=y;
paint:=true;
end;
end;
procedure TfrmTrainerDesigner.PaintBox1MouseMove(Sender: TObject;
Shift: TShiftState; X, Y: Integer);
var temp: integer;
begin
if paint then
begin
frmTrainerDesigner.Repaint;
if (startx>x) and (starty>y) then //exchange them
drawrect:=rect(x,y,startx,starty);
if (startx>x) and (starty<y) then
drawrect:=rect(x,starty,startx,y);
if (startx<x) and (starty>y) then
drawrect:=rect(startx,y,x,starty);
if (startx<x) and (starty<y) then
drawrect:=rect(startx,starty,x,y);
dec(drawrect.Left,frmTrainerDesigner.HorzScrollBar.ScrollPos);
deC(drawrect.Right,frmTrainerDesigner.HorzScrollBar.ScrollPos);
dec(drawrect.top,frmTrainerDesigner.VertScrollBar.ScrollPos);
deC(drawrect.bottom,frmTrainerDesigner.VertScrollBar.ScrollPos);
frmTrainerDesigner.Canvas.DrawFocusRect(drawrect);
end;
end;
procedure TfrmTrainerDesigner.PaintBox1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var comp: Tcontrol;
i:integer;
begin
//reset trainerdesignercontrols
for i:=0 to frmTrainerDesignControls.toolbar1.ButtonCount-1 do
frmTrainerDesignControls.toolbar1.Buttons[i].Down:=false;
if paint then
begin
changed:=true;
paint:=false;
case additem of
1: begin
comp:=tbutton2.create(self);
tbutton(comp).OnMouseDown:=mousedown;
tbutton(comp).OnMouseMove:=mousemove;
tbutton(comp).OnMouseUp:=mouseup;
end;
2: begin
comp:=tcheatlist.Create(self);
tcheatlist(comp).OnMouseDown:=mousedown;
tcheatlist(comp).OnMouseMove:=mousemove;
tcheatlist(comp).OnMouseUp:=mouseup;
end;
3: begin
comp:=tcheat.Create(self);
tcheat(comp).OnMouseDown:=mousedown;
tcheat(comp).OnMouseMove:=mousemove;
tcheat(comp).OnMouseUp:=mouseup;
end;
4: begin //image
comp:=timage2.Create(self);
timage(comp).OnMouseDown:=mousedown;
timage(comp).Width:=100;
timage(comp).Height:=100;
timage(comp).OnMouseMove:=mousemove;
timage(comp).OnMouseUp:=mouseup;
end;
5: begin
comp:=TLabel2.Create(self);
tlabel(comp).Caption:='Type some text';
tlabel(comp).OnMouseDown:=mousedown;
tlabel(comp).OnMouseMove:=mousemove;
tlabel(comp).OnMouseUp:=mouseup;
end;
6: begin
comp:=TScrollbox.Create(self);
tscrollbox(comp).OnMouseDown:=mousedown;
tscrollbox(comp).OnMouseMove:=mousemove;
tscrollbox(comp).OnMouseUp:=mouseup;
end;
end;
with comp do
begin
if drawrect.Right-drawrect.Left<=1 then
begin
top:=drawrect.top;
left:=drawrect.Left;
end else BoundsRect:=drawrect;
parent:=frmTrainerDesigner;
end;
selectedobject:=comp;
stretchhandle.Attach(comp);
end;
updatecheats;
updateeditor;
additem:=0;
end;
procedure TfrmTrainerDesigner.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
stretchhandle.Free;
frmTrainerDesignObjectView.free;
frmTrainerDesignControls.free;
frmMemoryTrainerPreview.visible:=true;
frmmemorymodifier.Button2.Enabled:=true;
frmmemorymodifier.Button7.Caption:='Design own userinterface';
action:=cafree;
end;
procedure TfrmTrainerDesigner.FormDestroy(Sender: TObject);
begin
frmTrainerDesigner:=nil;
end;
procedure TfrmTrainerDesigner.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
canclose:=(not changed) or (messagedlg('If you close this window you''ll lose your changes! Continue?',mtwarning,[mbyes,mbno],0)=mryes);
end;
procedure TfrmTrainerDesigner.Bringtofront1Click(Sender: TObject);
begin
twincontrol(selectedobject).BringToFront;
end;
procedure TfrmTrainerDesigner.Sendtoback1Click(Sender: TObject);
begin
twincontrol(selectedobject).SendToBack;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -