mirror of
https://github.com/cheat-engine/cheat-engine
synced 2026-08-15 02:26:08 -04:00
Also added some new fields to get in the dotnetdatacollector and monodatacollector so you'll need to recompile those
861 lines
25 KiB
Text
Executable file
861 lines
25 KiB
Text
Executable file
object frmStringPointerScan: TfrmStringPointerScan
|
|
Left = 602
|
|
Height = 534
|
|
Top = 171
|
|
Width = 813
|
|
AutoSize = True
|
|
Caption = 'Structure spider'
|
|
ClientHeight = 514
|
|
ClientWidth = 813
|
|
Menu = MainMenu1
|
|
OnClose = FormClose
|
|
OnCreate = FormCreate
|
|
OnDestroy = FormDestroy
|
|
OnShow = FormShow
|
|
Position = poScreenCenter
|
|
LCLVersion = '2.2.2.0'
|
|
object Panel1: TPanel
|
|
Left = 0
|
|
Height = 494
|
|
Top = 0
|
|
Width = 189
|
|
Align = alLeft
|
|
AutoSize = True
|
|
BevelOuter = bvNone
|
|
ClientHeight = 494
|
|
ClientWidth = 189
|
|
TabOrder = 0
|
|
object edtStructsize: TEdit
|
|
AnchorSideLeft.Control = lblStructsize
|
|
AnchorSideTop.Control = lblStructsize
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 87
|
|
Height = 23
|
|
Top = 23
|
|
Width = 80
|
|
TabOrder = 0
|
|
Text = '4096'
|
|
end
|
|
object lblStructsize: TLabel
|
|
AnchorSideLeft.Control = Panel5
|
|
AnchorSideLeft.Side = asrBottom
|
|
AnchorSideTop.Control = Panel5
|
|
Left = 87
|
|
Height = 15
|
|
Top = 8
|
|
Width = 50
|
|
BorderSpacing.Left = 3
|
|
Caption = 'Structsize'
|
|
ParentColor = False
|
|
end
|
|
object edtRegExp: TEdit
|
|
AnchorSideLeft.Control = lblString
|
|
AnchorSideTop.Control = lblString
|
|
AnchorSideRight.Control = Panel1
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 20
|
|
Height = 23
|
|
Top = 349
|
|
Width = 165
|
|
Anchors = [akTop, akLeft, akRight]
|
|
BorderSpacing.Right = 4
|
|
Enabled = False
|
|
TabOrder = 9
|
|
end
|
|
object cbMustBeStart: TCheckBox
|
|
AnchorSideLeft.Control = cbRegExp
|
|
AnchorSideTop.Control = cbCaseSensitive
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 20
|
|
Height = 19
|
|
Top = 330
|
|
Width = 89
|
|
Caption = 'Must be start'
|
|
Enabled = False
|
|
TabOrder = 8
|
|
end
|
|
object cbCaseSensitive: TCheckBox
|
|
AnchorSideLeft.Control = cbRegExp
|
|
AnchorSideTop.Control = cbRegExp
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 20
|
|
Height = 19
|
|
Top = 311
|
|
Width = 93
|
|
Caption = 'Case sensitive'
|
|
Enabled = False
|
|
TabOrder = 7
|
|
end
|
|
object cbRegExp: TCheckBox
|
|
AnchorSideLeft.Control = rbStringscan
|
|
AnchorSideTop.Control = cbReuseStringmap
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 20
|
|
Height = 19
|
|
Top = 292
|
|
Width = 165
|
|
BorderSpacing.Left = 16
|
|
BorderSpacing.Right = 4
|
|
Caption = 'Strings must match reg exp'
|
|
OnChange = cbRegExpChange
|
|
TabOrder = 6
|
|
end
|
|
object rbStringscan: TRadioButton
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = Panel4
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 4
|
|
Height = 19
|
|
Top = 254
|
|
Width = 78
|
|
Caption = 'String scan'
|
|
OnChange = rbDatascanChange
|
|
TabOrder = 5
|
|
end
|
|
object rbDatascan: TRadioButton
|
|
AnchorSideLeft.Control = rbStringscan
|
|
AnchorSideTop.Control = edtRegExp
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 4
|
|
Height = 19
|
|
Top = 372
|
|
Width = 71
|
|
Caption = 'Data scan'
|
|
OnChange = rbDatascanChange
|
|
TabOrder = 10
|
|
end
|
|
object edtAlignsize: TEdit
|
|
AnchorSideLeft.Control = lblAlign
|
|
AnchorSideTop.Control = lblAlign
|
|
AnchorSideTop.Side = asrBottom
|
|
AnchorSideRight.Control = Panel1
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 20
|
|
Height = 23
|
|
Top = 406
|
|
Width = 165
|
|
Anchors = [akTop, akLeft, akRight]
|
|
BorderSpacing.Right = 4
|
|
Enabled = False
|
|
TabOrder = 11
|
|
Text = '4'
|
|
end
|
|
object lblAlign: TLabel
|
|
AnchorSideLeft.Control = rbDatascan
|
|
AnchorSideTop.Control = rbDatascan
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 20
|
|
Height = 15
|
|
Top = 391
|
|
Width = 47
|
|
BorderSpacing.Left = 16
|
|
Caption = 'Alignsize'
|
|
Enabled = False
|
|
ParentColor = False
|
|
end
|
|
object edtPointerStart: TEdit
|
|
AnchorSideLeft.Control = cbPointerInRange
|
|
AnchorSideTop.Control = cbPointerInRange
|
|
AnchorSideTop.Side = asrBottom
|
|
AnchorSideRight.Control = Panel1
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 4
|
|
Height = 23
|
|
Top = 67
|
|
Width = 181
|
|
Anchors = [akTop, akLeft, akRight]
|
|
BorderSpacing.Right = 4
|
|
Enabled = False
|
|
TabOrder = 2
|
|
end
|
|
object cbPointerInRange: TCheckBox
|
|
AnchorSideLeft.Control = Panel5
|
|
AnchorSideTop.Control = Panel5
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 4
|
|
Height = 19
|
|
Top = 48
|
|
Width = 150
|
|
BorderSpacing.Top = 2
|
|
Caption = 'Pointer must be in range'
|
|
OnChange = cbPointerInRangeChange
|
|
TabOrder = 1
|
|
end
|
|
object lblAnd: TLabel
|
|
AnchorSideLeft.Control = cbPointerInRange
|
|
AnchorSideTop.Control = edtPointerStart
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 4
|
|
Height = 15
|
|
Top = 90
|
|
Width = 20
|
|
Caption = 'and'
|
|
Enabled = False
|
|
ParentColor = False
|
|
end
|
|
object edtPointerStop: TEdit
|
|
AnchorSideLeft.Control = cbPointerInRange
|
|
AnchorSideTop.Control = lblAnd
|
|
AnchorSideTop.Side = asrBottom
|
|
AnchorSideRight.Control = Panel1
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 4
|
|
Height = 23
|
|
Top = 105
|
|
Width = 181
|
|
Anchors = [akTop, akLeft, akRight]
|
|
BorderSpacing.Right = 4
|
|
Enabled = False
|
|
TabOrder = 3
|
|
end
|
|
object lblString: TLabel
|
|
AnchorSideLeft.Control = cbMustBeStart
|
|
AnchorSideTop.Control = cbMustBeStart
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 20
|
|
Height = 15
|
|
Top = 349
|
|
Width = 34
|
|
Caption = 'String:'
|
|
Enabled = False
|
|
ParentColor = False
|
|
end
|
|
object Panel4: TPanel
|
|
AnchorSideLeft.Control = edtPointerStop
|
|
AnchorSideTop.Control = edtPointerStop
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 4
|
|
Height = 122
|
|
Top = 132
|
|
Width = 148
|
|
AutoSize = True
|
|
BorderSpacing.Top = 4
|
|
BevelOuter = bvNone
|
|
ClientHeight = 122
|
|
ClientWidth = 148
|
|
TabOrder = 4
|
|
object rbDiffDontCare: TRadioButton
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = Panel4
|
|
Left = 0
|
|
Height = 19
|
|
Top = 0
|
|
Width = 148
|
|
Caption = 'Don''t care for difference'
|
|
Checked = True
|
|
Enabled = False
|
|
OnChange = rbDiffDontCareChange
|
|
TabOrder = 0
|
|
TabStop = True
|
|
end
|
|
object rbMustBeDifferent: TRadioButton
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = rbDiffDontCare
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 19
|
|
Top = 19
|
|
Width = 111
|
|
Caption = 'Must be different'
|
|
Enabled = False
|
|
OnChange = rbDiffDontCareChange
|
|
TabOrder = 1
|
|
end
|
|
object rbMustBeSame: TRadioButton
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = rbMustBeDifferent
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 19
|
|
Top = 38
|
|
Width = 114
|
|
Caption = 'Must be the same'
|
|
Enabled = False
|
|
OnChange = rbDiffDontCareChange
|
|
TabOrder = 2
|
|
end
|
|
object comboCompareType: TComboBox
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = lblCompare
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 16
|
|
Height = 23
|
|
Top = 72
|
|
Width = 124
|
|
BorderSpacing.Left = 16
|
|
Enabled = False
|
|
ItemHeight = 15
|
|
ItemIndex = 3
|
|
Items.Strings = (
|
|
'String'
|
|
'1 Byte'
|
|
'2 Bytes'
|
|
'4 Bytes'
|
|
'8 Bytes'
|
|
'Float'
|
|
'Double'
|
|
'Pointer (hex)'
|
|
)
|
|
OnChange = comboTypeChange
|
|
Style = csDropDownList
|
|
TabOrder = 3
|
|
Text = '4 Bytes'
|
|
end
|
|
object lblCompare: TLabel
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = rbMustBeSame
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 15
|
|
Top = 57
|
|
Width = 75
|
|
Caption = 'Compare type'
|
|
Enabled = False
|
|
ParentColor = False
|
|
end
|
|
object cbMapPointerValues: TCheckBox
|
|
AnchorSideLeft.Control = Panel4
|
|
AnchorSideTop.Control = comboCompareType
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 19
|
|
Hint = 'During the scan the values of pointer will be stored in memory for quick lookup when the same address is encountered again'#13#10'If the pointerlist has mostly unique addresses this can cause you to get out of memory errors'#13#10#13#10'Enabled: Fast- Memory gobbler'#13#10'Disabled: Slower- Not too much memory eaten'
|
|
Top = 103
|
|
Width = 148
|
|
BorderSpacing.Top = 8
|
|
Caption = 'Store values during scan'
|
|
Checked = True
|
|
ParentShowHint = False
|
|
ShowHint = True
|
|
State = cbChecked
|
|
TabOrder = 4
|
|
end
|
|
end
|
|
object Panel5: TPanel
|
|
AnchorSideLeft.Control = Panel1
|
|
AnchorSideTop.Control = Panel1
|
|
Left = 4
|
|
Height = 38
|
|
Top = 8
|
|
Width = 80
|
|
AutoSize = True
|
|
BorderSpacing.Left = 4
|
|
BorderSpacing.Top = 8
|
|
BevelOuter = bvNone
|
|
ClientHeight = 38
|
|
ClientWidth = 80
|
|
TabOrder = 12
|
|
object edtMaxLevel: TEdit
|
|
AnchorSideLeft.Control = Panel5
|
|
AnchorSideTop.Control = lblMaxLevel
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 23
|
|
Top = 15
|
|
Width = 80
|
|
TabOrder = 0
|
|
Text = '2'
|
|
end
|
|
object lblMaxLevel: TLabel
|
|
AnchorSideLeft.Control = Panel5
|
|
AnchorSideTop.Control = Panel5
|
|
Left = 0
|
|
Height = 15
|
|
Top = 0
|
|
Width = 53
|
|
Caption = 'Max Level'
|
|
ParentColor = False
|
|
end
|
|
end
|
|
object Panel8: TPanel
|
|
AnchorSideLeft.Control = Panel1
|
|
AnchorSideTop.Control = Panel9
|
|
AnchorSideTop.Side = asrBottom
|
|
AnchorSideRight.Control = Panel1
|
|
AnchorSideRight.Side = asrBottom
|
|
AnchorSideBottom.Control = Panel1
|
|
AnchorSideBottom.Side = asrBottom
|
|
Left = 0
|
|
Height = 26
|
|
Top = 468
|
|
Width = 189
|
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
|
AutoSize = True
|
|
BevelOuter = bvNone
|
|
ClientHeight = 26
|
|
ClientWidth = 189
|
|
TabOrder = 13
|
|
object lblInfo: TLabel
|
|
Left = 0
|
|
Height = 15
|
|
Top = 11
|
|
Width = 189
|
|
Align = alBottom
|
|
Caption = 'Info'
|
|
ParentColor = False
|
|
end
|
|
end
|
|
object Panel9: TPanel
|
|
AnchorSideLeft.Control = Panel1
|
|
AnchorSideTop.Control = edtAlignsize
|
|
AnchorSideTop.Side = asrBottom
|
|
AnchorSideRight.Control = Panel1
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 0
|
|
Height = 39
|
|
Top = 429
|
|
Width = 189
|
|
Anchors = [akTop, akLeft, akRight]
|
|
AutoSize = True
|
|
BevelOuter = bvNone
|
|
ChildSizing.LeftRightSpacing = 8
|
|
ChildSizing.HorizontalSpacing = 8
|
|
ChildSizing.EnlargeHorizontal = crsHomogenousSpaceResize
|
|
ChildSizing.Layout = cclLeftToRightThenTopToBottom
|
|
ChildSizing.ControlsPerLine = 2
|
|
ClientHeight = 39
|
|
ClientWidth = 189
|
|
TabOrder = 14
|
|
object btnNewScan: TButton
|
|
AnchorSideLeft.Side = asrCenter
|
|
Left = 10
|
|
Height = 25
|
|
Top = 7
|
|
Width = 80
|
|
AutoSize = True
|
|
BorderSpacing.Top = 7
|
|
BorderSpacing.Bottom = 7
|
|
Caption = 'New Scan'
|
|
Constraints.MinWidth = 80
|
|
OnClick = miNewScanClick
|
|
TabOrder = 0
|
|
Visible = False
|
|
end
|
|
object btnScan: TButton
|
|
AnchorSideLeft.Side = asrCenter
|
|
Left = 100
|
|
Height = 25
|
|
Top = 7
|
|
Width = 80
|
|
AutoSize = True
|
|
BorderSpacing.Left = 7
|
|
BorderSpacing.Top = 7
|
|
BorderSpacing.Right = 4
|
|
BorderSpacing.Bottom = 7
|
|
Caption = 'Scan'
|
|
Constraints.MinWidth = 80
|
|
OnClick = btnScanClick
|
|
TabOrder = 1
|
|
end
|
|
end
|
|
object cbReuseStringmap: TCheckBox
|
|
AnchorSideLeft.Control = rbStringscan
|
|
AnchorSideTop.Control = rbStringscan
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 20
|
|
Height = 19
|
|
Top = 273
|
|
Width = 140
|
|
BorderSpacing.Left = 16
|
|
Caption = 'Use existing stringmap'
|
|
Checked = True
|
|
OnChange = cbReuseStringmapChange
|
|
State = cbChecked
|
|
TabOrder = 15
|
|
end
|
|
end
|
|
object Panel2: TPanel
|
|
Left = 189
|
|
Height = 494
|
|
Top = 0
|
|
Width = 624
|
|
Align = alClient
|
|
BevelOuter = bvNone
|
|
ClientHeight = 494
|
|
ClientWidth = 624
|
|
TabOrder = 1
|
|
object ListView1: TListView
|
|
Left = 0
|
|
Height = 358
|
|
Top = 136
|
|
Width = 624
|
|
Align = alClient
|
|
Columns = <>
|
|
HideSelection = False
|
|
OwnerData = True
|
|
PopupMenu = pmPointerfile
|
|
ReadOnly = True
|
|
RowSelect = True
|
|
TabOrder = 0
|
|
ViewStyle = vsReport
|
|
OnCustomDrawItem = ListView1CustomDrawItem
|
|
OnData = ListView1Data
|
|
OnDblClick = ListView1DblClick
|
|
end
|
|
object Panel3: TPanel
|
|
Left = 0
|
|
Height = 136
|
|
Top = 0
|
|
Width = 624
|
|
Align = alTop
|
|
AutoSize = True
|
|
BevelOuter = bvNone
|
|
ClientHeight = 136
|
|
ClientWidth = 624
|
|
TabOrder = 1
|
|
OnClick = Panel3Click
|
|
object lblExtra: TLabel
|
|
AnchorSideLeft.Control = Panel6
|
|
AnchorSideLeft.Side = asrBottom
|
|
AnchorSideTop.Control = Panel6
|
|
Left = 133
|
|
Height = 15
|
|
Top = 8
|
|
Width = 90
|
|
BorderSpacing.Left = 6
|
|
Caption = 'Compare against'
|
|
ParentColor = False
|
|
end
|
|
object edtExtra: TEdit
|
|
AnchorSideLeft.Control = lblExtra
|
|
AnchorSideTop.Control = lblExtra
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 133
|
|
Height = 23
|
|
Top = 23
|
|
Width = 127
|
|
OnChange = edtExtraChange
|
|
TabOrder = 0
|
|
end
|
|
object cbHasShadow2: TCheckBox
|
|
AnchorSideLeft.Control = lblExtra
|
|
AnchorSideTop.Control = edtExtra
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 133
|
|
Height = 19
|
|
Hint = 'Use this if you''re spidering a previously saved memory region that currently resides in a different location.'#13#10'Most commonly used for stacks where stack pointers point to it''s own structure'
|
|
Top = 48
|
|
Width = 85
|
|
BorderSpacing.Top = 2
|
|
Caption = 'Has Shadow'
|
|
OnChange = cbHasShadowChange
|
|
ParentShowHint = False
|
|
ShowHint = True
|
|
TabOrder = 1
|
|
end
|
|
object edtShadowAddress2: TEdit
|
|
AnchorSideLeft.Control = lblExtra
|
|
AnchorSideTop.Control = cbHasShadow2
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 133
|
|
Height = 23
|
|
Top = 67
|
|
Width = 127
|
|
OnChange = edtBaseChange
|
|
TabOrder = 2
|
|
Visible = False
|
|
end
|
|
object lblsize2: TLabel
|
|
AnchorSideLeft.Control = lblExtra
|
|
AnchorSideTop.Control = edtShadowAddress2
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 133
|
|
Height = 15
|
|
Top = 90
|
|
Width = 20
|
|
Caption = 'Size'
|
|
ParentColor = False
|
|
Visible = False
|
|
end
|
|
object edtShadowSize2: TEdit
|
|
AnchorSideLeft.Control = lblExtra
|
|
AnchorSideTop.Control = lblsize2
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 133
|
|
Height = 23
|
|
Top = 105
|
|
Width = 80
|
|
BorderSpacing.Bottom = 8
|
|
OnChange = edtBaseChange
|
|
TabOrder = 3
|
|
Visible = False
|
|
end
|
|
object Panel6: TPanel
|
|
AnchorSideLeft.Control = Panel3
|
|
AnchorSideTop.Control = Panel3
|
|
Left = 0
|
|
Height = 120
|
|
Top = 8
|
|
Width = 127
|
|
AutoSize = True
|
|
BorderSpacing.Top = 8
|
|
BorderSpacing.Bottom = 8
|
|
BevelOuter = bvNone
|
|
ClientHeight = 120
|
|
ClientWidth = 127
|
|
TabOrder = 4
|
|
object edtShadowSize: TEdit
|
|
AnchorSideLeft.Control = lblSize
|
|
AnchorSideTop.Control = lblSize
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 23
|
|
Top = 97
|
|
Width = 80
|
|
OnChange = edtBaseChange
|
|
TabOrder = 0
|
|
Visible = False
|
|
end
|
|
object lblSize: TLabel
|
|
AnchorSideLeft.Control = Panel6
|
|
AnchorSideTop.Control = edtShadowAddress
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 15
|
|
Top = 82
|
|
Width = 20
|
|
Caption = 'Size'
|
|
ParentColor = False
|
|
Visible = False
|
|
end
|
|
object edtShadowAddress: TEdit
|
|
AnchorSideLeft.Control = cbHasShadow
|
|
AnchorSideTop.Control = cbHasShadow
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 23
|
|
Top = 59
|
|
Width = 127
|
|
OnChange = edtBaseChange
|
|
TabOrder = 1
|
|
Visible = False
|
|
end
|
|
object cbHasShadow: TCheckBox
|
|
AnchorSideLeft.Control = Panel6
|
|
AnchorSideTop.Control = edtBase
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 19
|
|
Hint = 'Use this if you''re spidering a previously saved memory region that currently resides in a different location.'#13#10'Most commonly used for stacks where stack pointers point to it''s own structure'
|
|
Top = 40
|
|
Width = 85
|
|
BorderSpacing.Top = 2
|
|
Caption = 'Has Shadow'
|
|
OnChange = cbHasShadowChange
|
|
ParentShowHint = False
|
|
ShowHint = True
|
|
TabOrder = 2
|
|
end
|
|
object edtBase: TEdit
|
|
AnchorSideLeft.Control = Panel6
|
|
AnchorSideTop.Control = lblBaseRegion
|
|
AnchorSideTop.Side = asrBottom
|
|
Left = 0
|
|
Height = 23
|
|
Top = 15
|
|
Width = 127
|
|
OnChange = edtBaseChange
|
|
TabOrder = 3
|
|
end
|
|
object lblBaseRegion: TLabel
|
|
AnchorSideLeft.Control = Panel6
|
|
AnchorSideTop.Control = Panel6
|
|
Left = 0
|
|
Height = 15
|
|
Top = 0
|
|
Width = 61
|
|
Caption = 'Base region'
|
|
ParentColor = False
|
|
end
|
|
end
|
|
object Panel7: TPanel
|
|
AnchorSideLeft.Control = edtExtra
|
|
AnchorSideLeft.Side = asrBottom
|
|
AnchorSideTop.Control = Panel3
|
|
AnchorSideRight.Control = Panel3
|
|
AnchorSideRight.Side = asrBottom
|
|
AnchorSideBottom.Control = Panel3
|
|
AnchorSideBottom.Side = asrBottom
|
|
Left = 268
|
|
Height = 136
|
|
Top = 0
|
|
Width = 356
|
|
Anchors = [akTop, akLeft, akRight, akBottom]
|
|
AutoSize = True
|
|
BorderSpacing.Left = 8
|
|
BevelOuter = bvNone
|
|
ClientHeight = 136
|
|
ClientWidth = 356
|
|
TabOrder = 5
|
|
object lblvds: TLabel
|
|
AnchorSideTop.Control = Panel7
|
|
AnchorSideRight.Control = Panel7
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 249
|
|
Height = 15
|
|
Top = 8
|
|
Width = 107
|
|
Anchors = [akTop, akRight]
|
|
BorderSpacing.Top = 8
|
|
Caption = 'Variable display type'
|
|
ParentColor = False
|
|
end
|
|
object comboType: TComboBox
|
|
AnchorSideTop.Control = lblvds
|
|
AnchorSideTop.Side = asrBottom
|
|
AnchorSideRight.Control = Panel7
|
|
AnchorSideRight.Side = asrBottom
|
|
Left = 232
|
|
Height = 23
|
|
Top = 23
|
|
Width = 124
|
|
Anchors = [akTop, akRight]
|
|
ItemHeight = 15
|
|
ItemIndex = 0
|
|
Items.Strings = (
|
|
'String'
|
|
'1 Byte'
|
|
'2 Bytes'
|
|
'4 Bytes'
|
|
'8 Bytes'
|
|
'Float'
|
|
'Double'
|
|
'Pointer (hex)'
|
|
)
|
|
OnChange = comboTypeChange
|
|
Style = csDropDownList
|
|
TabOrder = 0
|
|
Text = 'String'
|
|
end
|
|
end
|
|
end
|
|
end
|
|
object ProgressBar1: TProgressBar
|
|
Left = 0
|
|
Height = 20
|
|
Top = 494
|
|
Width = 813
|
|
Align = alBottom
|
|
Max = 1000
|
|
TabOrder = 2
|
|
end
|
|
object SaveDialog1: TSaveDialog
|
|
DefaultExt = '.sptr'
|
|
Filter = 'String pointer (*.sptr)|*.sptr'
|
|
Options = [ofOverwritePrompt, ofEnableSizing, ofViewDetail]
|
|
Left = 480
|
|
Top = 64
|
|
end
|
|
object MainMenu1: TMainMenu
|
|
Images = spImageList
|
|
Left = 197
|
|
Top = 168
|
|
object MenuItem1: TMenuItem
|
|
Caption = 'File'
|
|
object MenuItem7: TMenuItem
|
|
Caption = 'New Window'
|
|
ImageIndex = 0
|
|
OnClick = MenuItem7Click
|
|
end
|
|
object MenuItem4: TMenuItem
|
|
Caption = '-'
|
|
end
|
|
object miNewScan: TMenuItem
|
|
Caption = 'New scan'
|
|
ImageIndex = 1
|
|
OnClick = miNewScanClick
|
|
end
|
|
object miOpen: TMenuItem
|
|
Caption = 'Open'
|
|
ImageIndex = 2
|
|
OnClick = miOpenClick
|
|
end
|
|
end
|
|
object MenuItem5: TMenuItem
|
|
Caption = 'Rescan'
|
|
Visible = False
|
|
object MenuItem6: TMenuItem
|
|
Caption = 'Filter pointerlist'
|
|
OnClick = MenuItem6Click
|
|
end
|
|
end
|
|
end
|
|
object OpenDialog1: TOpenDialog
|
|
DefaultExt = '.sptr'
|
|
Filter = 'String pointer (*.sptr)|*.sptr'
|
|
Left = 552
|
|
Top = 64
|
|
end
|
|
object statusupdater: TTimer
|
|
Enabled = False
|
|
Interval = 500
|
|
OnTimer = statusupdaterTimer
|
|
Left = 464
|
|
Top = 208
|
|
end
|
|
object pmPointerfile: TPopupMenu
|
|
Images = spImageList
|
|
Left = 400
|
|
Top = 112
|
|
object miClearCache: TMenuItem
|
|
Caption = 'Clear pointer cache'
|
|
ImageIndex = 4
|
|
OnClick = miClearCacheClick
|
|
end
|
|
object miFind: TMenuItem
|
|
Caption = 'Find...'
|
|
ImageIndex = 3
|
|
ShortCut = 16454
|
|
OnClick = miFindClick
|
|
end
|
|
object miFindNext: TMenuItem
|
|
Caption = 'Find Next'
|
|
Enabled = False
|
|
ShortCut = 114
|
|
OnClick = FindDialog1Find
|
|
end
|
|
end
|
|
object FindDialog1: TFindDialog
|
|
Options = [frDown, frHideWholeWord, frHideUpDown, frDisableUpDown, frHideEntireScope, frHidePromptOnReplace]
|
|
OnFind = FindDialog1Find
|
|
Left = 268
|
|
Top = 243
|
|
end
|
|
object spImageList: TImageList
|
|
Left = 430
|
|
Top = 307
|
|
Bitmap = {
|
|
4C7A050000001000000010000000B10300000000000078DADD966B4853611880
|
|
AD4565A44951FD8894CA6E14FD48BA43A09949D6BF88022DC14C0B21A421A158
|
|
C3CD9C792B0BC5DB9C4BA7194E837029C3164E33EC62D27096B5E5654E4B3092
|
|
79DFDBF79EB53AADB39367F387F6C2C377F6BDEFF39DEFBCE7DB9826612B1832
|
|
76B293421012520949845BD65173CDEA42891F3BD9849B845C829090671D0D22
|
|
B24E6E0040D30D7634CCA06BA8B808CE06BAACFE40BB1567FDEA702BF3C5EF69
|
|
06A8BBFA1BA9BF15FA1CD638F2DF3F06B81FF49B827D56E87358F3BFF6CF3E3A
|
|
6AAC38EBCFE0FC6A4407C05019E314E892709B938C0C7882FC848102AFB9FADF
|
|
8D5ED4EF0C82D773DDC767C43A1BFD6D3EBF7CBCA6E798FA817DB2D5FF0BAC9D
|
|
6DDFD5FDCFF7F737DBE7778EA1EBD4AD3F1CEB5767329938F7029D83B7B769F7
|
|
BF5B0BC16907D42323234B66EA626DA078EF3374917DED6BE0B438A4626A6A6A
|
|
01E6331F560BB2EB9E5228540D27EDFDA0B301777C533D4D7E9AD5948FE32691
|
|
A7E9FCA5B038CCEFAF6A8010A385C2FFC5C7E99CCAAA48FB350C06C3D21DF295
|
|
948F237EB6E5E83E72E4750F041555BE3D5EA26823BC09CE97B704644B5ED0FD
|
|
888CBB12473E13C17A33D0FD63F9F2B6D9F67D73AAC02BAB9A9115190A582614
|
|
C2F23411357A5C2F1ADD2894B66D8FE0ABD03FF6E11B2C4EAB81458F7A387136
|
|
5B9687FE2E592DF0AA3F7372790F3AA1A6F64920FAABD22B39DFDBF38674606C
|
|
6C8CB73335177805CF39FB61F74A73B07F5EE76239BBBCF20EB277A53FFA1BCE
|
|
446B492F755CD87E45D842F6BE70B6BEDB52A9345C2010A8FF059FCF7FAA52A9
|
|
F6D8FB242798E97F96A8A828A34EA75BE7AC6F369B213434F4E5F0F0B03B9B5F
|
|
5F5F0F62B118D2D3D3A951A954FECAF5F5F58148248A63F2474747213131111A
|
|
1B1BFF58AFB9B919121212A8FB63FC74FEF2535252A0BFBF9F71EF838383785F
|
|
877E6F6F2F141616B23EBF4C2603BD5ECFE82B140AE8EAEA62F5BBBBBBA1BCBC
|
|
9CD12F2B2B03A3D1C8EA0F0D0D41717131A3DFDADA4AF59D2DD46A3534353531
|
|
FA168B05E2E3E3A9D151607E7A7ADA61FFB55A2D242727C3C4C4C41FDEE4E424
|
|
F5FE44E4F78BEDFD61607F85A42E3333134A4B4B212B2B0B929292402291808F
|
|
B73794488A587D5B8C8F8F536701475BD4296B618B873BF02F47DF75E6FC6334
|
|
D43E06EF456E968AA2C2535CBEBF7462222FE4B4BF7AB979BEFF2FA1F3F50B78
|
|
4486815CFF09BCED73388739AC71E4637EF75680A387E0137D0DBCC639CC618D
|
|
239F5E675B83698EED19ECEBB9B84C6B70755DF55DD9BFABFD73F5FDB97A7EE6
|
|
233F00469623A3
|
|
}
|
|
end
|
|
end
|