1 |
|
unit BinEdit; |
2 |
+ |
|
3 |
|
interface |
4 |
+ |
|
5 |
|
uses |
6 |
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, |
7 |
< |
Dialogs, VirtualTrees, Grids, Wrapgrid, MPHexEditor, StdCtrls, |
8 |
< |
Menus, VTHeaderPopup, ExtCtrls, Buttons, StrUtils, Clipbrd, |
7 |
> |
Dialogs, VirtualTrees, Grids, Wrapgrid, MPHexEditor, |
8 |
> |
StdCtrls, Menus, ExtCtrls, Buttons, |
9 |
|
Data, TypeDefs, ConnectionManager, Template, |
10 |
< |
_BaseTemplate, _TemplateFile, _TemplateFileList; |
10 |
> |
_TemplateFileList, VTHeaderPopup; |
11 |
|
|
12 |
|
type |
13 |
< |
TForm_BinEdit = class(TForm_ToolTemplate) |
13 |
> |
TForm_BinEdit = class(TForm_TemplateFileList) |
14 |
> |
panel_imexport: TPanel; |
15 |
> |
btn_export: TButton; |
16 |
> |
btn_import: TButton; |
17 |
|
hex: TMPHexEditor; |
18 |
|
Splitter2: TSplitter; |
19 |
|
value_viewer: TWrapGrid; |
15 |
– |
VST: TVirtualStringTree; |
20 |
|
Splitter3: TSplitter; |
21 |
+ |
VST: TVirtualStringTree; |
22 |
+ |
VTHPopup: TVTHeaderPopupMenu; |
23 |
|
value_viewer_context: TPopupMenu; |
24 |
|
value_viewer_context_copy: TMenuItem; |
25 |
|
value_viewer_context_copyasdec: TMenuItem; |
27 |
|
value_viewer_context_copyasbitset: TMenuItem; |
28 |
|
value_viewer_context_copyasstring: TMenuItem; |
29 |
|
value_viewer_context_copyashex: TMenuItem; |
24 |
– |
VTHPopup: TVTHeaderPopupMenu; |
25 |
– |
panel_imexport: TPanel; |
26 |
– |
btn_export: TButton; |
27 |
– |
btn_import: TButton; |
28 |
– |
procedure FormCreate(Sender: TObject); |
30 |
|
procedure NewFile(fileinfo: TFileInfo); |
31 |
|
|
31 |
– |
procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); |
32 |
– |
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
33 |
– |
|
34 |
– |
procedure hexKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); |
35 |
– |
procedure hexSelectionChanged(Sender: TObject); |
36 |
– |
procedure hexChange(Sender: TObject); |
37 |
– |
|
32 |
|
procedure LoadDat(_fileid: Integer); |
33 |
|
function Save: Boolean; |
34 |
|
function GetValue(datatype: Word; offset: Integer): String; |
36 |
|
|
37 |
|
procedure WriteStructureInfos; |
38 |
|
procedure ClearStructViewer; |
45 |
– |
procedure VSTDblClick(Sender: TObject); |
46 |
– |
procedure VSTFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; |
47 |
– |
Column: TColumnIndex); |
48 |
– |
procedure VTHPopupColumnChange(const Sender: TBaseVirtualTree; |
49 |
– |
const Column: TColumnIndex; Visible: Boolean); |
50 |
– |
procedure VSTHeaderDragged(Sender: TVTHeader; Column: TColumnIndex; |
51 |
– |
OldPosition: Integer); |
52 |
– |
procedure VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; |
53 |
– |
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); |
39 |
|
|
40 |
|
procedure ClearValues; |
41 |
|
procedure WriteValues; |
42 |
+ |
|
43 |
+ |
procedure FormCreate(Sender: TObject); |
44 |
+ |
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); |
45 |
+ |
procedure hexChange(Sender: TObject); |
46 |
+ |
procedure hexKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); |
47 |
+ |
procedure hexSelectionChanged(Sender: TObject); |
48 |
|
procedure value_viewerDblClick(Sender: TObject); |
49 |
< |
procedure value_viewer_context_copyClick(Sender: TObject); |
49 |
> |
procedure FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); |
50 |
> |
procedure value_viewer_contextPopup(Sender: TObject); |
51 |
|
procedure value_viewerMouseDown(Sender: TObject; Button: TMouseButton; |
52 |
|
Shift: TShiftState; X, Y: Integer); |
53 |
< |
procedure value_viewer_contextPopup(Sender: TObject); |
53 |
> |
procedure value_viewer_context_copyClick(Sender: TObject); |
54 |
> |
procedure VSTDblClick(Sender: TObject); |
55 |
> |
procedure VSTFocusChanged(Sender: TBaseVirtualTree; Node: PVirtualNode; |
56 |
> |
Column: TColumnIndex); |
57 |
> |
procedure VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode; |
58 |
> |
Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString); |
59 |
> |
procedure VSTHeaderDragged(Sender: TVTHeader; Column: TColumnIndex; |
60 |
> |
OldPosition: Integer); |
61 |
> |
procedure VTHPopupColumnChange(const Sender: TBaseVirtualTree; |
62 |
> |
const Column: TColumnIndex; Visible: Boolean); |
63 |
|
private |
64 |
|
fileid: Integer; |
65 |
|
ConID: Integer; |
67 |
|
public |
68 |
|
end; |
69 |
|
|
69 |
– |
var |
70 |
– |
Form_BinEdit: TForm_BinEdit; |
71 |
– |
|
70 |
|
implementation |
73 |
– |
|
74 |
– |
uses ValueEdit, Main, Functions, DatStructureLoader, RawEdit; |
71 |
|
{$R *.dfm} |
72 |
+ |
uses ValueEdit, Main, Functions, DatStructureLoader, RawEdit, RawList, |
73 |
+ |
StrUtils, Clipbrd; |
74 |
+ |
|
75 |
|
|
76 |
|
type |
77 |
|
PNodeData = ^TNodeData; |
118 |
|
// |
119 |
|
end; |
120 |
|
|
121 |
+ |
|
122 |
|
procedure TForm_BinEdit.NewFile(fileinfo: TFileInfo); |
123 |
|
begin |
124 |
|
LoadDat(fileinfo.ID); |
990 |
|
|
991 |
|
|
992 |
|
|
993 |
– |
|
993 |
|
procedure TForm_BinEdit.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState); |
994 |
|
begin |
995 |
|
if (Shift = [ssCtrl]) and (Key = 83) then |