| 6 |
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
| 7 |
|
Dialogs, VirtualTrees, Grids, Wrapgrid, MPHexEditor, |
| 8 |
|
StdCtrls, Menus, ExtCtrls, Buttons, |
| 9 |
< |
Data, TypeDefs, ConnectionManager, Template, |
| 9 |
> |
Data, TypeDefs, ConnectionManager, |
| 10 |
|
_TemplateFileList, VTHeaderPopup, ComCtrls; |
| 11 |
|
|
| 12 |
|
type |
| 29 |
|
value_viewer_context_copyashex: TMenuItem; |
| 30 |
|
procedure NewFile(fileinfo: TFileInfo); |
| 31 |
|
|
| 32 |
– |
procedure LoadDat(_fileid: Integer); |
| 32 |
|
function Save: Boolean; |
| 33 |
|
function GetValue(datatype: Word; offset: Integer): String; |
| 34 |
|
procedure SetNewValue(datatype: Word; offset: Integer; Value: String); |
| 69 |
|
implementation |
| 70 |
|
{$R *.dfm} |
| 71 |
|
uses ValueEdit, Main, Functions, DatStructureLoader, RawEdit, RawList, |
| 72 |
< |
StrUtils, Clipbrd; |
| 72 |
> |
StrUtils, Clipbrd, _TemplateFile; |
| 73 |
|
|
| 74 |
|
|
| 75 |
|
type |
| 119 |
|
|
| 120 |
|
|
| 121 |
|
procedure TForm_BinEdit.NewFile(fileinfo: TFileInfo); |
| 123 |
– |
begin |
| 124 |
– |
LoadDat(fileinfo.ID); |
| 125 |
– |
end; |
| 126 |
– |
|
| 127 |
– |
|
| 128 |
– |
|
| 129 |
– |
|
| 130 |
– |
function AddVSTEntry(AVST: TCustomVirtualStringTree; ANode: PVirtualNode; |
| 131 |
– |
ARecord: TNodeData): PVirtualNode; |
| 132 |
– |
var |
| 133 |
– |
Data: PNodeData; |
| 134 |
– |
begin |
| 135 |
– |
Result := AVST.AddChild(ANode); |
| 136 |
– |
Data := AVST.GetNodeData(Result); |
| 137 |
– |
AVST.ValidateNode(Result, False); |
| 138 |
– |
Data^ := ARecord; |
| 139 |
– |
end; |
| 140 |
– |
|
| 141 |
– |
|
| 142 |
– |
|
| 143 |
– |
|
| 144 |
– |
procedure TForm_BinEdit.LoadDat(_fileid: Integer); |
| 122 |
|
var |
| 123 |
|
mem: TMemoryStream; |
| 124 |
|
begin |
| 133 |
|
end; |
| 134 |
|
end; |
| 135 |
|
end; |
| 136 |
< |
if _fileid >= 0 then |
| 136 |
> |
if fileinfo.ID >= 0 then |
| 137 |
|
begin |
| 138 |
< |
fileid := _fileid; |
| 138 |
> |
fileid := fileinfo.ID; |
| 139 |
|
ConID := ConnectionID; |
| 140 |
< |
if ConManager.Connection[ConID].ExtractFileIDOfName(filelist.Items.Strings[filelist.ItemIndex]) <> fileid then |
| 141 |
< |
Self.SelectFileID(ConnectionID, fileid); |
| 140 |
> |
// if ConManager.Connection[ConID].ExtractFileIDOfName(filelist.Items.Strings[filelist.ItemIndex]) <> fileid then |
| 141 |
> |
// Self.SelectFileID(ConnectionID, fileid); |
| 142 |
|
Self.ClearStructViewer; |
| 166 |
– |
mem := nil; |
| 167 |
– |
ConManager.Connection[ConID].LoadDatFile(fileid, TStream(mem)); |
| 168 |
– |
rawlist := ConManager.Connection[ConID].GetRawList(fileid); |
| 169 |
– |
hex.LoadFromStream(mem); |
| 170 |
– |
mem.Free; |
| 143 |
|
ClearValues; |
| 144 |
< |
WriteStructureInfos; |
| 144 |
> |
mem := nil; |
| 145 |
> |
hex.DataSize := 0; |
| 146 |
> |
if fileinfo.Size > 0 then |
| 147 |
> |
begin |
| 148 |
> |
ConManager.Connection[ConID].LoadDatFile(fileid, TStream(mem)); |
| 149 |
> |
rawlist := ConManager.Connection[ConID].GetRawList(fileid); |
| 150 |
> |
hex.LoadFromStream(mem); |
| 151 |
> |
mem.Free; |
| 152 |
> |
WriteStructureInfos; |
| 153 |
> |
end; |
| 154 |
|
end |
| 155 |
|
else |
| 156 |
|
begin |
| 157 |
< |
fileid := _fileid; |
| 157 |
> |
fileid := -1; |
| 158 |
|
ConID := -1; |
| 159 |
|
Self.ClearStructViewer; |
| 160 |
|
ClearValues; |
| 165 |
|
|
| 166 |
|
|
| 167 |
|
|
| 168 |
+ |
|
| 169 |
+ |
function AddVSTEntry(AVST: TCustomVirtualStringTree; ANode: PVirtualNode; |
| 170 |
+ |
ARecord: TNodeData): PVirtualNode; |
| 171 |
+ |
var |
| 172 |
+ |
Data: PNodeData; |
| 173 |
+ |
begin |
| 174 |
+ |
Result := AVST.AddChild(ANode); |
| 175 |
+ |
Data := AVST.GetNodeData(Result); |
| 176 |
+ |
AVST.ValidateNode(Result, False); |
| 177 |
+ |
Data^ := ARecord; |
| 178 |
+ |
end; |
| 179 |
+ |
|
| 180 |
+ |
|
| 181 |
+ |
|
| 182 |
+ |
|
| 183 |
+ |
|
| 184 |
|
function TForm_BinEdit.GetValue(datatype: Word; offset: Integer): String; |
| 185 |
|
var |
| 186 |
|
Data: TByteData; |