mirror of https://gitlab.com/basile.b/dexed.git
added a toyi widget for win32 cdb (ms debugging tool)
This commit is contained in:
parent
1791623aee
commit
5de7c44696
|
@ -140,7 +140,7 @@
|
||||||
<PackageName Value="LCL"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item6>
|
</Item6>
|
||||||
</RequiredPackages>
|
</RequiredPackages>
|
||||||
<Units Count="28">
|
<Units Count="29">
|
||||||
<Unit0>
|
<Unit0>
|
||||||
<Filename Value="coedit.lpr"/>
|
<Filename Value="coedit.lpr"/>
|
||||||
<IsPartOfProject Value="True"/>
|
<IsPartOfProject Value="True"/>
|
||||||
|
@ -317,6 +317,14 @@
|
||||||
<ResourceBaseClass Value="Form"/>
|
<ResourceBaseClass Value="Form"/>
|
||||||
<UnitName Value="ce_procinput"/>
|
<UnitName Value="ce_procinput"/>
|
||||||
</Unit27>
|
</Unit27>
|
||||||
|
<Unit28>
|
||||||
|
<Filename Value="..\src\ce_cdbcmd.pas"/>
|
||||||
|
<IsPartOfProject Value="True"/>
|
||||||
|
<ComponentName Value="CECdbWidget"/>
|
||||||
|
<HasResources Value="True"/>
|
||||||
|
<ResourceBaseClass Value="Form"/>
|
||||||
|
<UnitName Value="ce_cdbcmd"/>
|
||||||
|
</Unit28>
|
||||||
</Units>
|
</Units>
|
||||||
</ProjectOptions>
|
</ProjectOptions>
|
||||||
<CompilerOptions>
|
<CompilerOptions>
|
||||||
|
|
|
@ -0,0 +1,271 @@
|
||||||
|
inherited CECdbWidget: TCECdbWidget
|
||||||
|
Left = 1404
|
||||||
|
Height = 589
|
||||||
|
Top = 2
|
||||||
|
Width = 496
|
||||||
|
Caption = 'CDB commander'
|
||||||
|
ClientHeight = 589
|
||||||
|
ClientWidth = 496
|
||||||
|
inherited Back: TPanel
|
||||||
|
Height = 589
|
||||||
|
Width = 496
|
||||||
|
ClientHeight = 589
|
||||||
|
ClientWidth = 496
|
||||||
|
inherited Content: TPanel
|
||||||
|
Height = 589
|
||||||
|
Width = 496
|
||||||
|
ClientHeight = 589
|
||||||
|
ClientWidth = 496
|
||||||
|
object txtCdbCmd: TEdit[0]
|
||||||
|
Left = 4
|
||||||
|
Height = 23
|
||||||
|
Hint = 'CDB command field'
|
||||||
|
Top = 562
|
||||||
|
Width = 488
|
||||||
|
Align = alBottom
|
||||||
|
BorderSpacing.Around = 4
|
||||||
|
OnKeyPress = txtCdbCmdKeyPress
|
||||||
|
TabOrder = 0
|
||||||
|
end
|
||||||
|
object Panel1: TPanel[1]
|
||||||
|
Left = 4
|
||||||
|
Height = 26
|
||||||
|
Top = 4
|
||||||
|
Width = 488
|
||||||
|
Align = alTop
|
||||||
|
BorderSpacing.Around = 4
|
||||||
|
BevelOuter = bvNone
|
||||||
|
ClientHeight = 26
|
||||||
|
ClientWidth = 488
|
||||||
|
TabOrder = 1
|
||||||
|
object btnGo: TSpeedButton
|
||||||
|
Left = 60
|
||||||
|
Height = 26
|
||||||
|
Hint = 'resume execution'
|
||||||
|
Top = 0
|
||||||
|
Width = 30
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF000000000000000000000000000000000000000024000000330000
|
||||||
|
002F000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0000000000000000000000000000000000007D41C100C684FF0086
|
||||||
|
46ED000000290000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0000000024000000330000003300000033008847FF00E4A6FF00BE
|
||||||
|
80FF008345D90000002100000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00007D41C1008A48FF008847FF008746FF008847FF00D9A1FF00D8
|
||||||
|
A0FF00BC80FF007C41B900000022FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00008947FF43E8C2FF00D7A0FF00D7A0FF00D59FFF00D09CFF00D0
|
||||||
|
9CFF00D39FFF00B981FF007E43BDFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00008845FF6FE8D0FF00C899FF00C899FF00C899FF00C797FF00C8
|
||||||
|
98FF00CA9AFF63E6CDFF008A47FFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00008946FF99F0E4FF4FE9D5FF51E8D4FF4DE6D1FF94E8D8FF00C3
|
||||||
|
97FF60E0C7FF00B281FF008B49ACFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00008847B2008946FF008744FF008642FF008847FF82E4D6FF5ADA
|
||||||
|
C4FF00AD7FFF008947A700000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0000000000000000000000000000000000008847FF7AE4D8FF00AA
|
||||||
|
7FFF008946CF0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF0000000000000000000000000000000000008847B200AA85FF008A
|
||||||
|
46E9000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = btnGoClick
|
||||||
|
ShowCaption = False
|
||||||
|
end
|
||||||
|
object btnStop: TSpeedButton
|
||||||
|
Left = 30
|
||||||
|
Height = 26
|
||||||
|
Hint = 'stop debugging'
|
||||||
|
Top = 0
|
||||||
|
Width = 30
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF003941D64C444BD9D2474FDAF0434BD9E94048D7E93E47
|
||||||
|
D8F0353ED5D2252ED254232BD206FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF004148D74C636CE4E48997FAFF8495FFFF7F90FCFF7D8EFAFF7D8D
|
||||||
|
F7FF7D8BF2FF5159DDFF222AD173FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF004E56DA4D6C75E4DF96A5FAFF5A74FFFF3250FFFF304FFFFF2C49FEFF2542
|
||||||
|
FAFF4860F9FF8694F4FF5159DDDC252ED14DFFFFFF00FFFFFF00FFFFFF005E65
|
||||||
|
DE4B7981E7E59FADFBFF6781FFFF405EFFFF405EFFFF3C59FFFF3755FFFF3350
|
||||||
|
FFFF2846FDFF4A65FDFF8996F6FF545EDEE52C34D44BFFFFFF00FFFFFF007178
|
||||||
|
E3D5A2B2FCFF738FFFFF4F70FFFF4F6EFFFF4B69FFFF4664FFFF415EFFFF3C5A
|
||||||
|
FFFF3755FFFF2C4BFFFF4E67FFFF8493FAFF4048D8D5FFFFFF00FFFFFF007D84
|
||||||
|
E5F2A6BBFFFF5F7FFFFF5F7EFFFF5A79FFFF5573FFFF506EFFFF4B69FFFF4664
|
||||||
|
FFFF415EFFFF3B59FFFF314FFFFF8799FFFF4D55DBF2FFFFFF00FFFFFF00858A
|
||||||
|
E6E9ABBEFFFF6D8DFFFF6989FFFF6583FFFF5F7EFFFF5A79FFFF5574FFFF506F
|
||||||
|
FFFF4B69FFFF4663FFFF3F5CFFFF8A9BFFFF535BDCE9FFFFFF00FFFFFF008B91
|
||||||
|
E7EAB1C4FFFF7698FFFF7393FFFF6E8EFFFF6989FFFF6583FFFF5F7EFFFF5A79
|
||||||
|
FFFF5573FFFF4F6EFFFF4867FFFF90A1FFFF5A62DEEAFFFFFF00FFFFFF009298
|
||||||
|
E9F2B8CDFFFF7DA0FFFF7C9DFFFF7899FFFF7393FFFF6E8EFFFF6989FFFF6583
|
||||||
|
FFFF607EFFFF5978FFFF4F70FFFF98AAFFFF636AE0F2FFFFFF00FFFFFF00959A
|
||||||
|
EAD4BCCDFCFF9CBBFFFF81A5FFFF81A2FFFF7C9EFFFF7899FFFF7493FFFF6F8E
|
||||||
|
FFFF6989FFFF6080FFFF7893FFFF9EADFBFF656CE0D4FFFFFF00FFFFFF009297
|
||||||
|
E84AA5ACEFE4C1D1FCFFA0BFFFFF86AAFFFF85A7FFFF81A2FFFF7C9DFFFF7898
|
||||||
|
FFFF6F90FFFF85A1FFFFACBAFBFF838BE8E46369DF4AFFFFFF00FFFFFF00FFFF
|
||||||
|
FF009396E849A6ADEEDFC4D4FCFFA3C2FFFF8BAFFFFF89ABFFFF84A7FFFF7EA0
|
||||||
|
FFFF91AEFFFFB4C3FBFF8C93EADB6D71E04AFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF009498E84AA9B1F0E4C2D3FCFFC1D6FFFFBDD1FFFFBBCFFFFFB9CE
|
||||||
|
FFFFB7C8FCFF989FEDFF797EE272FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00999DEA4B9EA3EBD2A0A5ECF09DA2EBE99BA0EBE9989E
|
||||||
|
EAF09297E9D2868BE6538388E506FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = btnStopClick
|
||||||
|
ShowCaption = False
|
||||||
|
end
|
||||||
|
object btnStart: TSpeedButton
|
||||||
|
Left = 0
|
||||||
|
Height = 26
|
||||||
|
Hint = 'start debuggin'
|
||||||
|
Top = 0
|
||||||
|
Width = 30
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
36040000424D3604000000000000360000002800000010000000100000000100
|
||||||
|
2000000000000004000064000000640000000000000000000000FFFFFF00FFFF
|
||||||
|
FF00000000000000003300000030000000000000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0000000000329EDEFF319CDBF10000002D0000000000000000000000000000
|
||||||
|
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0000000000329AD8C4329DDEFF2F98D7E90000003300000006000000000000
|
||||||
|
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0000000000339EDE5A329BDDFF67C6EEFF369FDEFF133D574A000000050000
|
||||||
|
000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF000000000000000000319ADBFF83D7F3FF89E4FAFF349CDCFF133951490000
|
||||||
|
001200000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0000000000000000003196D7BA57BEEAFFA9F5FFFF7BDEF8FF369CDCFF2772
|
||||||
|
A17B00000011000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00000000330000003321648F6B42A9E2FFBDF5FEFF81E7FBFF76DBF6FF379B
|
||||||
|
DCFF276F9E790000001A0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00389BDCFF48ACE4FF45A9E2FF3FA5E1FFBDF3FDFF7FE4F8FF7AE3FAFF70D9
|
||||||
|
F5FF42A5E0FF2E81B7990000002200000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003799DBFF9EF1FDFF80E5F9FF73E0F9FF6FDEF7FF6DDCF7FF6EDDF7FF71E0
|
||||||
|
F9FF70DFF8FF40A6E0FF358DC8B900000023FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003794D6D285DCF5FF89E5F8FF68DAF6FF68DAF6FFB9F0FCFFB8F2FDFFB4F2
|
||||||
|
FCFFA9F1FDFFABF1FCFF44A9E2FF3890CBBFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003993D2856DC5ECFF9CE8FAFF5FD6F4FF61D7F4FF46B4E6FF3191D8FF3595
|
||||||
|
DAFF3797DAFF3A99DBFF3E9CDCFF409EDDFFFFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF003E9BDC324CAEE4FFB0EEFBFF66D8F4FF57D3F3FFACEDFBFF63B4E5FF2D77
|
||||||
|
AB8900000001000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00000000003B9ADAFFACEEFBFF82DDF5FF4CCEF1FF82DFF6FFABE6F8FF3996
|
||||||
|
D9FF0711182D000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00000000003C94D5D28BDAF3FFACEAF9FF3FCBF0FF45CDF0FFBBF0FBFF6DBA
|
||||||
|
E7FF3B93D0D90000000E0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF00000000003E93D1876CC5EBFFD7FAFFFFCDF6FDFFC3F3FDFFD2F8FFFFC6F1
|
||||||
|
FBFF409ADAFF2D67916D0000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||||
|
FF0000000000479CDC3A439ADAFF3F97D9FF3E96D9FF3E96D9FF3E97D9FF4099
|
||||||
|
DAFF459CDBFF489EDCFF0000000000000000FFFFFF00FFFFFF00
|
||||||
|
}
|
||||||
|
OnClick = btnStartClick
|
||||||
|
ShowCaption = False
|
||||||
|
end
|
||||||
|
object btnStep: TSpeedButton
|
||||||
|
Left = 90
|
||||||
|
Height = 26
|
||||||
|
Hint = 'next instruction'
|
||||||
|
Top = 0
|
||||||
|
Width = 30
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
42020000424D4202000000000000420000002800000010000000100000000100
|
||||||
|
100003000000000200006400000064000000000000000000000000F80000E007
|
||||||
|
00001F000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0000000000000000000000000000FFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE73EF7B0000000000004D6B9294FFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7B18C6CF7B000000006D6B14A5FFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7B9AD6FBDECF7B00008E7334A5FFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7B18C6F7BD5DEFEF7BAE7355ADFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7B96B575AD7DEFEF7BCF7B55ADFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7B14A51CE7CF7B0000EF7B75ADFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEF7B1CE7CF7B00000000108496B5FFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1084EF7B0000000000003084B6B5FFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
|
||||||
|
FFFFFFFFFFFF
|
||||||
|
}
|
||||||
|
OnClick = btnStepClick
|
||||||
|
ShowCaption = False
|
||||||
|
end
|
||||||
|
object btnDisasm: TSpeedButton
|
||||||
|
Left = 120
|
||||||
|
Height = 26
|
||||||
|
Hint = 'disasm'
|
||||||
|
Top = 0
|
||||||
|
Width = 30
|
||||||
|
Align = alLeft
|
||||||
|
Glyph.Data = {
|
||||||
|
42020000424D4202000000000000420000002800000010000000100000000100
|
||||||
|
100003000000000200006400000064000000000000000000000000F80000E007
|
||||||
|
00001F0000000000000000000000000000000000000000000000000000000000
|
||||||
|
00000000FFFFCF7BD39CD39CD39CD39CD39CD39CD39CD39CD39CD39CD39CD39C
|
||||||
|
D39C3084FFFFD39CDFFFBEF7BEF7BEF7BEF7BEF7BEF7BEF7BEF7BEF7BEF7BEF7
|
||||||
|
DFFFD39CFFFFD39C9EF75DEF5DEF5DEF7DEF9EF79EF79EF77DEF5DEF5DEF5DEF
|
||||||
|
9EF7D39CFFFFD39C7DEF3CE73CE75DEFEB5A0C632C630C63EB5A5DEF3CE73CE7
|
||||||
|
7DEFD39CFFFFD39C7DEFFBDEFBDE1CE7DFFFFFFFFFFFFFFFDFFF3CE71CE7FBDE
|
||||||
|
7DEFD39CFFFFD39C5DEFDBDEDBDE1CE78A52AA52AA52AA52AA528A521CE7FBDE
|
||||||
|
5DEFD39CFFFFD39C5DEFBAD6BAD6DBDEDFFFFFFFFFFFFFFFFFFFBEF7FBDEDBDE
|
||||||
|
7DEFD39CFFFFD39C5DEF9AD6BAD6DBDE2842494A494A494A494A28420842BAD6
|
||||||
|
5DEFD39CFFFFD39C5DEF79CEBAD6DBDEDFFFFFFFFFFFDFFFBEF79EF75DEF79CE
|
||||||
|
5DEFD39CFFFFD39C7DEF79CEA631C739C739C739C739A63179CE59CE59CE38C6
|
||||||
|
5DEFD39CFFFFD39C7DEF38C69EF79EF79EF79EF79EF75DEF38C638C638C618C6
|
||||||
|
7DEFD39CFFFFD39C7DEFF7BDF7BDF7BDF7BDF7BDF7BDF7BDF7BDF7BDF7BDF7BD
|
||||||
|
7DEFD39CFFFFD39C9EF7B6B5D7BDD7BDD7BDD7BDD7BDD7BDD7BDD7BDD7BDB6B5
|
||||||
|
9EF7D39CFFFFD39CDFFFFBDEFBDE1CE71CE71CE71CE71CE71CE71CE7FBDEFBDE
|
||||||
|
DFFFD39CFFFFF39CD39CD39CD39CD39CD39CD39CD39CD39CD39CD39CD39CD39C
|
||||||
|
D39CF39CFFFF
|
||||||
|
}
|
||||||
|
OnClick = btnDisasmClick
|
||||||
|
ShowCaption = False
|
||||||
|
end
|
||||||
|
end
|
||||||
|
object lstCdbOut: TListView[2]
|
||||||
|
Left = 4
|
||||||
|
Height = 524
|
||||||
|
Hint = 'CDB output'
|
||||||
|
Top = 34
|
||||||
|
Width = 488
|
||||||
|
Align = alClient
|
||||||
|
AutoWidthLastColumn = True
|
||||||
|
BorderSpacing.Left = 4
|
||||||
|
BorderSpacing.Top = 4
|
||||||
|
BorderSpacing.Right = 4
|
||||||
|
BorderSpacing.Bottom = 4
|
||||||
|
Columns = <
|
||||||
|
item
|
||||||
|
Caption = 'CDB output'
|
||||||
|
Width = 484
|
||||||
|
end>
|
||||||
|
Font.Height = -11
|
||||||
|
Font.Name = 'Lucida Console'
|
||||||
|
ParentFont = False
|
||||||
|
TabOrder = 2
|
||||||
|
ViewStyle = vsReport
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
inherited contextMenu: TPopupMenu
|
||||||
|
left = 200
|
||||||
|
top = 8
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,223 @@
|
||||||
|
unit ce_cdbcmd;
|
||||||
|
|
||||||
|
{$mode objfpc}{$H+}
|
||||||
|
|
||||||
|
interface
|
||||||
|
|
||||||
|
uses
|
||||||
|
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||||
|
process, Menus, StdCtrls, ce_widget, ce_project, ce_interfaces, ce_observer,
|
||||||
|
asyncprocess, ComCtrls, Buttons, ce_common;
|
||||||
|
|
||||||
|
type
|
||||||
|
|
||||||
|
{ TCECdbWidget }
|
||||||
|
TCECdbWidget = class(TCEWidget, ICEProjectObserver)
|
||||||
|
btnGo: TSpeedButton;
|
||||||
|
btnStep: TSpeedButton;
|
||||||
|
btnDisasm: TSpeedButton;
|
||||||
|
btnStop: TSpeedButton;
|
||||||
|
btnStart: TSpeedButton;
|
||||||
|
txtCdbCmd: TEdit;
|
||||||
|
lstCdbOut: TListView;
|
||||||
|
Panel1: TPanel;
|
||||||
|
procedure btnDisasmClick(Sender: TObject);
|
||||||
|
procedure btnGoClick(Sender: TObject);
|
||||||
|
procedure btnStartClick(Sender: TObject);
|
||||||
|
procedure btnStepClick(Sender: TObject);
|
||||||
|
procedure btnStopClick(Sender: TObject);
|
||||||
|
procedure Button2Click(Sender: TObject);
|
||||||
|
procedure txtCdbCmdKeyPress(Sender: TObject; var Key: char);
|
||||||
|
private
|
||||||
|
fCdbProc: TAsyncProcess;
|
||||||
|
fProject: TCEProject;
|
||||||
|
procedure cdbOutput(sender: TObject);
|
||||||
|
procedure cdbTerminate(sender: TObject);
|
||||||
|
procedure cdbOutputToGui;
|
||||||
|
procedure cdbFree;
|
||||||
|
public
|
||||||
|
constructor create(aOwner: TComponent); override;
|
||||||
|
destructor destroy; override;
|
||||||
|
//
|
||||||
|
procedure projNew(const aProject: TCEProject);
|
||||||
|
procedure projClosing(const aProject: TCEProject);
|
||||||
|
procedure projFocused(const aProject: TCEProject);
|
||||||
|
procedure projChanged(const aProject: TCEProject);
|
||||||
|
end;
|
||||||
|
|
||||||
|
implementation
|
||||||
|
{$R *.lfm}
|
||||||
|
|
||||||
|
uses
|
||||||
|
ce_main;
|
||||||
|
|
||||||
|
{$REGION Standard Comp/Obj------------------------------------------------------}
|
||||||
|
constructor TCECdbWidget.create(aOwner: TComponent);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
Enabled := exeInSysPath('cdb');
|
||||||
|
if Enabled then
|
||||||
|
EntitiesConnector.addObserver(self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TCECdbWidget.destroy;
|
||||||
|
begin
|
||||||
|
if Enabled then begin
|
||||||
|
cdbFree;
|
||||||
|
EntitiesConnector.removeObserver(self);
|
||||||
|
end;
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
|
{$REGION ICEProjectMonitor -----------------------------------------------------}
|
||||||
|
procedure TCECdbWidget.projNew(const aProject: TCEProject);
|
||||||
|
begin
|
||||||
|
fProject := aProject;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.projClosing(const aProject: TCEProject);
|
||||||
|
begin
|
||||||
|
fProject := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.projFocused(const aProject: TCEProject);
|
||||||
|
begin
|
||||||
|
fProject := aProject;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.projChanged(const aProject: TCEProject);
|
||||||
|
begin
|
||||||
|
fProject := aProject;
|
||||||
|
end;
|
||||||
|
{$ENDREGION --------------------------------------------------------------------}
|
||||||
|
|
||||||
|
procedure TCECdbWidget.btnStartClick(Sender: TObject);
|
||||||
|
var
|
||||||
|
outname: string;
|
||||||
|
begin
|
||||||
|
if fProject = nil then exit;
|
||||||
|
outname := fProject.outputFilename;
|
||||||
|
if not fileExists(outname) then exit;
|
||||||
|
//
|
||||||
|
cdbFree;
|
||||||
|
fCdbProc := TAsyncProcess.create(nil);
|
||||||
|
fCdbProc.Executable := 'cdb';
|
||||||
|
fCdbProc.Parameters.Add('-c');
|
||||||
|
fCdbProc.Parameters.Add('"l+*;.lines"');
|
||||||
|
fCdbProc.Parameters.Add(outname);
|
||||||
|
fCdbProc.CurrentDirectory := extractFilePath(outname);
|
||||||
|
fCdbProc.Options := [poNoConsole, poStderrToOutPut, poUsePipes];
|
||||||
|
fCdbProc.OnReadData := @cdbOutput;
|
||||||
|
fCdbProc.OnTerminate := @cdbTerminate;
|
||||||
|
//
|
||||||
|
fCdbProc.Execute;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.btnStepClick(Sender: TObject);
|
||||||
|
const
|
||||||
|
cmd = 'p'#13#10;
|
||||||
|
begin
|
||||||
|
if fCdbProc = nil then exit;
|
||||||
|
fCdbProc.Input.Write(cmd[1], length(cmd));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.btnGoClick(Sender: TObject);
|
||||||
|
const
|
||||||
|
cmd = 'g'#13#10;
|
||||||
|
begin
|
||||||
|
if fCdbProc = nil then exit;
|
||||||
|
fCdbProc.Input.Write(cmd[1], length(cmd));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.btnDisasmClick(Sender: TObject);
|
||||||
|
const
|
||||||
|
cmd = 'u'#13#10;
|
||||||
|
begin
|
||||||
|
if fCdbProc = nil then exit;
|
||||||
|
fCdbProc.Input.Write(cmd[1], length(cmd));
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.btnStopClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
cdbFree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.Button2Click(Sender: TObject);
|
||||||
|
begin
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.txtCdbCmdKeyPress(Sender: TObject; var Key: char);
|
||||||
|
var
|
||||||
|
inp: string;
|
||||||
|
begin
|
||||||
|
if (fCdbProc = nil) or (key <> #13) then
|
||||||
|
exit;
|
||||||
|
//
|
||||||
|
inp := CEMainForm.expandSymbolicString(txtCdbCmd.Text) + LineEnding;
|
||||||
|
fCdbProc.Input.Write(inp[1], length(inp));
|
||||||
|
//
|
||||||
|
inp := lstCdbOut.Items.Item[lstCdbOut.Items.Count-1].Caption;
|
||||||
|
inp += CEMainForm.expandSymbolicString(txtCdbCmd.Text);
|
||||||
|
lstCdbOut.Items.Item[lstCdbOut.Items.Count-1].Caption := inp;
|
||||||
|
//
|
||||||
|
txtCdbCmd.Text := '';
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.cdbOutputToGui;
|
||||||
|
var
|
||||||
|
str: TMemoryStream;
|
||||||
|
lst: TStringList;
|
||||||
|
cnt: Integer;
|
||||||
|
sum: Integer;
|
||||||
|
begin
|
||||||
|
if fCdbProc = nil then exit;
|
||||||
|
|
||||||
|
cnt := 0;
|
||||||
|
sum := 0;
|
||||||
|
str := TMemoryStream.Create;
|
||||||
|
lst := TStringList.Create;
|
||||||
|
|
||||||
|
while fCdbProc.Output.NumBytesAvailable <> 0 do
|
||||||
|
begin
|
||||||
|
str.Size := str.Size + 1024;
|
||||||
|
cnt := fCdbProc.Output.Read((str.Memory + sum)^, 1024);
|
||||||
|
sum += cnt;
|
||||||
|
end;
|
||||||
|
|
||||||
|
str.Size := sum;
|
||||||
|
lst.LoadFromStream(str);
|
||||||
|
|
||||||
|
for cnt := 0 to lst.Count-1 do
|
||||||
|
lstCdbOut.AddItem(lst.Strings[cnt], nil);
|
||||||
|
lstCdbOut.Items[lstCdbOut.Items.Count-1].MakeVisible(true);
|
||||||
|
|
||||||
|
lst.Free;
|
||||||
|
str.Free;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.cdbOutput(sender: TObject);
|
||||||
|
begin
|
||||||
|
cdbOutputToGui;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.cdbTerminate(sender: TObject);
|
||||||
|
begin
|
||||||
|
cdbOutputToGui;
|
||||||
|
cdbFree;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TCECdbWidget.cdbFree;
|
||||||
|
begin
|
||||||
|
if fCdbProc = nil then
|
||||||
|
exit;
|
||||||
|
//
|
||||||
|
if fCdbProc.Running then
|
||||||
|
fCdbProc.Terminate(0);
|
||||||
|
fCdbProc.Free;
|
||||||
|
fCdbProc := nil;
|
||||||
|
end;
|
||||||
|
|
||||||
|
end.
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
inherited CEWidget1: TCEWidget1
|
|
||||||
Left = 874
|
|
||||||
Height = 589
|
|
||||||
Top = 248
|
|
||||||
Width = 499
|
|
||||||
ClientHeight = 589
|
|
||||||
ClientWidth = 499
|
|
||||||
inherited Back: TPanel
|
|
||||||
Height = 589
|
|
||||||
Width = 499
|
|
||||||
ClientHeight = 589
|
|
||||||
ClientWidth = 499
|
|
||||||
inherited Content: TPanel
|
|
||||||
Height = 589
|
|
||||||
Width = 499
|
|
||||||
ClientHeight = 589
|
|
||||||
ClientWidth = 499
|
|
||||||
object lstGdbOut: TMemo[0]
|
|
||||||
Left = 4
|
|
||||||
Height = 524
|
|
||||||
Top = 61
|
|
||||||
Width = 491
|
|
||||||
Align = alClient
|
|
||||||
BorderSpacing.Around = 4
|
|
||||||
Font.Height = -12
|
|
||||||
Font.Name = 'Lucida Console'
|
|
||||||
ParentFont = False
|
|
||||||
ReadOnly = True
|
|
||||||
ScrollBars = ssBoth
|
|
||||||
TabOrder = 0
|
|
||||||
end
|
|
||||||
object Edit1: TEdit[1]
|
|
||||||
Left = 4
|
|
||||||
Height = 23
|
|
||||||
Top = 34
|
|
||||||
Width = 491
|
|
||||||
Align = alTop
|
|
||||||
BorderSpacing.Around = 4
|
|
||||||
OnKeyPress = Edit1KeyPress
|
|
||||||
TabOrder = 1
|
|
||||||
end
|
|
||||||
object Panel1: TPanel[2]
|
|
||||||
Left = 4
|
|
||||||
Height = 26
|
|
||||||
Top = 4
|
|
||||||
Width = 491
|
|
||||||
Align = alTop
|
|
||||||
BorderSpacing.Around = 4
|
|
||||||
Caption = 'Panel1'
|
|
||||||
ClientHeight = 26
|
|
||||||
ClientWidth = 491
|
|
||||||
TabOrder = 2
|
|
||||||
object Button1: TButton
|
|
||||||
Left = 8
|
|
||||||
Height = 25
|
|
||||||
Top = 0
|
|
||||||
Width = 75
|
|
||||||
Caption = 'start'
|
|
||||||
OnClick = Button1Click
|
|
||||||
TabOrder = 0
|
|
||||||
end
|
|
||||||
object Button2: TButton
|
|
||||||
Left = 88
|
|
||||||
Height = 25
|
|
||||||
Top = 0
|
|
||||||
Width = 75
|
|
||||||
Caption = 'stop'
|
|
||||||
OnClick = Button2Click
|
|
||||||
TabOrder = 1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
object IdleTimer1: TIdleTimer[2]
|
|
||||||
Interval = 100
|
|
||||||
OnTimer = IdleTimer1Timer
|
|
||||||
left = 211
|
|
||||||
top = 16
|
|
||||||
end
|
|
||||||
end
|
|
|
@ -1,163 +0,0 @@
|
||||||
unit ce_gdbcmd;
|
|
||||||
|
|
||||||
{$mode objfpc}{$H+}
|
|
||||||
|
|
||||||
interface
|
|
||||||
|
|
||||||
uses
|
|
||||||
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, ExtCtrls, process,
|
|
||||||
Menus, StdCtrls, ce_widget, ce_project, ce_interfaces, ce_observer, asyncprocess;
|
|
||||||
|
|
||||||
type
|
|
||||||
|
|
||||||
{ TCEWidget1 }
|
|
||||||
|
|
||||||
TCEWidget1 = class(TCEWidget, ICEProjectObserver)
|
|
||||||
Button1: TButton;
|
|
||||||
Button2: TButton;
|
|
||||||
Edit1: TEdit;
|
|
||||||
IdleTimer1: TIdleTimer;
|
|
||||||
lstGdbOut: TMemo;
|
|
||||||
Panel1: TPanel;
|
|
||||||
procedure Button1Click(Sender: TObject);
|
|
||||||
procedure Button2Click(Sender: TObject);
|
|
||||||
procedure Edit1KeyPress(Sender: TObject; var Key: char);
|
|
||||||
procedure IdleTimer1Timer(Sender: TObject);
|
|
||||||
private
|
|
||||||
fGdbProc: TProcess;
|
|
||||||
fProject: TCEProject;
|
|
||||||
procedure gdbReadData(sender: TObject);
|
|
||||||
public
|
|
||||||
constructor create(aOwner: TComponent); override;
|
|
||||||
destructor destroy; override;
|
|
||||||
//
|
|
||||||
procedure projNew(const aProject: TCEProject);
|
|
||||||
procedure projClosing(const aProject: TCEProject);
|
|
||||||
procedure projFocused(const aProject: TCEProject);
|
|
||||||
procedure projChanged(const aProject: TCEProject);
|
|
||||||
end;
|
|
||||||
|
|
||||||
implementation
|
|
||||||
{$R *.lfm}
|
|
||||||
|
|
||||||
{$REGION Standard Comp/Obj------------------------------------------------------}
|
|
||||||
constructor TCEWidget1.create(aOwner: TComponent);
|
|
||||||
begin
|
|
||||||
inherited;
|
|
||||||
//
|
|
||||||
EntitiesConnector.addObserver(self);
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TCEWidget1.destroy;
|
|
||||||
begin
|
|
||||||
EntitiesConnector.removeObserver(self);
|
|
||||||
inherited;
|
|
||||||
end;
|
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
|
||||||
|
|
||||||
{$REGION ICEProjectMonitor -----------------------------------------------------}
|
|
||||||
procedure TCEWidget1.projNew(const aProject: TCEProject);
|
|
||||||
begin
|
|
||||||
fProject := aProject;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.projClosing(const aProject: TCEProject);
|
|
||||||
begin
|
|
||||||
fProject := nil;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.projFocused(const aProject: TCEProject);
|
|
||||||
begin
|
|
||||||
fProject := aProject;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.projChanged(const aProject: TCEProject);
|
|
||||||
begin
|
|
||||||
fProject := aProject;
|
|
||||||
end;
|
|
||||||
{$ENDREGION --------------------------------------------------------------------}
|
|
||||||
|
|
||||||
|
|
||||||
procedure TCEWidget1.Button1Click(Sender: TObject);
|
|
||||||
var
|
|
||||||
outname: string;
|
|
||||||
begin
|
|
||||||
if fProject = nil then exit;
|
|
||||||
outname := fProject.outputFilename;
|
|
||||||
if not fileExists(outname) then exit;
|
|
||||||
//
|
|
||||||
fGdbProc := TProcess.create(nil);
|
|
||||||
fGdbProc.Executable := 'cdb';
|
|
||||||
fGdbProc.Parameters.Add('-c');
|
|
||||||
fGdbProc.Parameters.Add('"l+*;.lines"');
|
|
||||||
fGdbProc.Parameters.Add(outname);
|
|
||||||
fGdbProc.CurrentDirectory := extractFilePath(outname);
|
|
||||||
fGdbProc.Options := fGdbProc.Options + [poStderrToOutPut, poUsePipes];
|
|
||||||
//fGdbProc.OnReadData := @gdbReadData;
|
|
||||||
|
|
||||||
fGdbProc.Execute;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.Button2Click(Sender: TObject);
|
|
||||||
begin
|
|
||||||
if fGdbProc = nil then exit;
|
|
||||||
fGdbProc.Terminate(0);
|
|
||||||
fGdbProc.Free;
|
|
||||||
fGdbProc := nil;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.Edit1KeyPress(Sender: TObject; var Key: char);
|
|
||||||
var
|
|
||||||
inp: string;
|
|
||||||
begin
|
|
||||||
if fGdbProc <> nil then
|
|
||||||
if Key = LineEnding[1] then
|
|
||||||
begin
|
|
||||||
inp := Edit1.Text + LineEnding;
|
|
||||||
fGdbProc.Input.Write( inp[1], length(inp) );
|
|
||||||
end;
|
|
||||||
Edit1.Text := '';
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.IdleTimer1Timer(Sender: TObject);
|
|
||||||
begin
|
|
||||||
gdbReadData(nil);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TCEWidget1.gdbReadData(sender: TObject);
|
|
||||||
var
|
|
||||||
str: TMemoryStream;
|
|
||||||
lst: TStringList;
|
|
||||||
cnt: Integer;
|
|
||||||
sum: Integer;
|
|
||||||
begin
|
|
||||||
|
|
||||||
if fGdbProc = nil then exit;
|
|
||||||
|
|
||||||
cnt := 0;
|
|
||||||
sum := 0;
|
|
||||||
str := TMemoryStream.Create;
|
|
||||||
lst := TStringList.Create;
|
|
||||||
|
|
||||||
|
|
||||||
while fGdbProc.Output.NumBytesAvailable <> 0 do
|
|
||||||
begin
|
|
||||||
str.Size := str.Size + 1024;
|
|
||||||
cnt := fGdbProc.Output.Read((str.Memory + sum)^, 1024);
|
|
||||||
sum += cnt;
|
|
||||||
end;
|
|
||||||
// cnt = 0;
|
|
||||||
|
|
||||||
str.Size := sum;
|
|
||||||
lst.LoadFromStream(str);
|
|
||||||
lstGdbOut.Lines.AddStrings(lst);
|
|
||||||
lstGdbOut.VertScrollBar.Position := lstGdbOut.Lines.Count * 53;
|
|
||||||
|
|
||||||
lst.Free;
|
|
||||||
str.Free;
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
end.
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ uses
|
||||||
ce_common, ce_dmdwrap, ce_project, ce_dcd, ce_plugin, ce_synmemo, ce_widget,
|
ce_common, ce_dmdwrap, ce_project, ce_dcd, ce_plugin, ce_synmemo, ce_widget,
|
||||||
ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf, ce_search,
|
ce_messages, ce_interfaces, ce_editor, ce_projinspect, ce_projconf, ce_search,
|
||||||
ce_staticexplorer, ce_miniexplorer, ce_libman, ce_libmaneditor, ce_customtools,
|
ce_staticexplorer, ce_miniexplorer, ce_libman, ce_libmaneditor, ce_customtools,
|
||||||
ce_observer, ce_writableComponent, ce_toolseditor, ce_procinput;
|
ce_observer, ce_writableComponent, ce_toolseditor, ce_procinput, ce_cdbcmd;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
|
@ -190,6 +190,7 @@ type
|
||||||
fFileMru: TMruFileList;
|
fFileMru: TMruFileList;
|
||||||
fLibMan: TLibraryManager;
|
fLibMan: TLibraryManager;
|
||||||
fPrInpWidg: TCEProcInputWidget;
|
fPrInpWidg: TCEProcInputWidget;
|
||||||
|
fCdbWidg: TCECdbWidget;
|
||||||
fTools: TCETools;
|
fTools: TCETools;
|
||||||
|
|
||||||
fRunProc: TAsyncProcess;
|
fRunProc: TAsyncProcess;
|
||||||
|
@ -465,6 +466,10 @@ begin
|
||||||
fTlsEdWidg:= TCEToolsEditorWidget.create(self);
|
fTlsEdWidg:= TCEToolsEditorWidget.create(self);
|
||||||
fPrInpWidg:= TCEProcInputWidget.create(self);
|
fPrInpWidg:= TCEProcInputWidget.create(self);
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
fCdbWidg := TCECdbWidget.create(self);
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
fWidgList.addWidget(@fMesgWidg);
|
fWidgList.addWidget(@fMesgWidg);
|
||||||
fWidgList.addWidget(@fEditWidg);
|
fWidgList.addWidget(@fEditWidg);
|
||||||
fWidgList.addWidget(@fProjWidg);
|
fWidgList.addWidget(@fProjWidg);
|
||||||
|
@ -476,6 +481,10 @@ begin
|
||||||
fWidgList.addWidget(@fTlsEdWidg);
|
fWidgList.addWidget(@fTlsEdWidg);
|
||||||
fWidgList.addWidget(@fPrInpWidg);
|
fWidgList.addWidget(@fPrInpWidg);
|
||||||
|
|
||||||
|
{$IFDEF WIN32}
|
||||||
|
fWidgList.addWidget(@fCdbWidg);
|
||||||
|
{$ENDIF}
|
||||||
|
|
||||||
for widg in fWidgList do
|
for widg in fWidgList do
|
||||||
begin
|
begin
|
||||||
act := TAction.Create(self);
|
act := TAction.Create(self);
|
||||||
|
|
Loading…
Reference in New Issue