cheat-engine/Cheat Engine/frmDebugEventsUnit.pas

97 lines
1.8 KiB
ObjectPascal

unit frmDebugEventsUnit;
{$mode delphi}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls, Menus, newkernelhandler;
type
TDebugEventData=record
context: TContext;
end;
PDebugEventData=^TDebugEventData;
type
{ TfrmDebugEvents }
TfrmDebugEvents = class(TForm)
lbDebugEvents: TListBox;
MenuItem1: TMenuItem;
Panel1: TPanel;
PopupMenu1: TPopupMenu;
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure lbDebugEventsDblClick(Sender: TObject);
procedure MenuItem1Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
procedure clear;
end;
var
frmDebugEvents: TfrmDebugEvents;
implementation
{ TfrmDebugEvents }
uses frmRegistersunit;
procedure TfrmDebugEvents.FormClose(Sender: TObject;
var CloseAction: TCloseAction);
begin
clear;
frmDebugEvents:=nil;
CloseAction:=caFree;
end;
procedure TfrmDebugEvents.lbDebugEventsDblClick(Sender: TObject);
var r: TRegisters;
d: PDebugEventData;
begin
//fetch detailed info
if lbDebugEvents.ItemIndex<>-1 then
begin
d:=PDebugEventData(lbDebugEvents.Items.Objects[lbdebugevents.ItemIndex]);
if d<>nil then
begin
r:=TRegisters.Create(self);
r.sbShowStack.Visible:=false;
r.SetContextPointer(@d.context, nil,0);
r.Show;
end;
end;
end;
procedure TfrmDebugEvents.clear;
var i: integer;
d: PDebugEventData;
begin
for i:=0 to lbDebugEvents.Count-1 do
begin
d:=PDebugEventData(lbDebugEvents.Items.Objects[i]);
Freemem(d);
end;
lbDebugEvents.Clear;
end;
procedure TfrmDebugEvents.MenuItem1Click(Sender: TObject);
begin
clear;
end;
initialization
{$I frmDebugEventsUnit.lrs}
end.