unit addresslisthandlerunit; { obsolete the addresslisthandler is a class which will deal with the general address list functions, like allocating memory, adding/removing from the list, finding the correct address if it's a pointer, etc... } {obsolete, handling is now done in addresslist} {$mode DELPHI} interface uses Classes, SysUtils, controls, stdctrls, comctrls, MemoryRecordUnit, symbolhandler, cefuncproc,newkernelhandler, addresslist; resourcestring rsALHAGroupWithTheName = 'A group with the name '; rsALHAlreadyExists = ' already exists'; { type TAddresslistHandler=class private FAddressList: TAddressList; //procedure freezeInterval //procedure UpdateValues function GetCount: integer; function GetRecord(Index: Integer): TMemoryRecord; procedure PutRecord(Index: Integer; Item: TMemoryRecord); public procedure delete(t: TTreeview); // procedure addaddress(description: string; address: PtrUInt; const offsets: array of dword; offsetcount: integer; vartype: TVariableType; length: integer; startbit: integer; unicode: boolean); overload; //procedure addaddress(description: string; address: uint_ptr; const offsets: array of dword; offsetcount: integer; ispointer: boolean; vartype: integer; length: integer; startbit: integer; unicode, showashex: boolean); overload; procedure CreateGroup(groupname: string); procedure DeleteGroup(groupname:string); constructor create(addresslist: TAddressList); destructor destroy; override; property Records[Index: Integer]: TMemoryRecord read GetRecord write PutRecord; default; property Count: Integer read GetCount; end; } implementation { function TAddresslistHandler.GetRecord(Index: Integer): TMemoryRecord; begin end; procedure TAddresslistHandler.PutRecord(Index: Integer; Item: TMemoryRecord); begin end; function TAddresslistHandler.GetCount: integer; begin end; procedure TAddresslistHandler.delete(t: TTreeview); begin end; procedure TAddresslistHandler.CreateGroup(groupname: string); var memrec: TMemoryRecord; i: integer; begin //first check if a group with this name already exists, if so, error for i:=0 to FAddressList.Items.Count-1 do begin memrec:=TMemoryRecord(FAddressList.Items[i].data); if memrec.isGroupHeader and (memrec.Description=groupname) then raise exception.create(rsALHAGroupWithTheName+groupname+rsALHAlreadyExists); end; memrec:=TMemoryRecord.create(self); memrec.Description:=groupname; memrec.isGroupHeader:=true; // memrec.treenode:=TTreenode.Create; // memrec.treenode.Parent:= end; procedure TAddresslistHandler.DeleteGroup(groupname:string); var memrec: TMemoryRecord; i,j: integer; begin for i:=0 to FAddressList.Items.Count-1 do begin memrec:=TMemoryRecord(FAddressList.Items[i].data); if memrec.isGroupHeader and (memrec.Description=groupname) then begin memrec.free; end; end; end; constructor TAddresslistHandler.create(addresslist: TAddressList); begin FAddressList:=addresslist; end; destructor TAddresslistHandler.destroy; begin while FAddressList.Items.Count>0 do TMemoryRecord(FAddressList.Items[0].data).Free; end; } end.