ide: remove debugger option dialog and menu item

git-svn-id: trunk@17691 -
This commit is contained in:
paul 2008-12-05 09:02:28 +00:00
parent dbb79626c8
commit 8f93dfa528
7 changed files with 2 additions and 1250 deletions

3
.gitattributes vendored
View File

@ -1590,9 +1590,6 @@ debugger/dbgoutputform.pp svneol=native#text/pascal
debugger/dbgutils.pp svneol=native#text/pascal debugger/dbgutils.pp svneol=native#text/pascal
debugger/debugger.pp svneol=native#text/pascal debugger/debugger.pp svneol=native#text/pascal
debugger/debuggerdlg.pp svneol=native#text/pascal debugger/debuggerdlg.pp svneol=native#text/pascal
debugger/debugoptionsfrm.lfm svneol=native#text/plain
debugger/debugoptionsfrm.lrs svneol=native#text/pascal
debugger/debugoptionsfrm.pas svneol=native#text/pascal
debugger/evaluatedlg.lfm svneol=native#text/plain debugger/evaluatedlg.lfm svneol=native#text/plain
debugger/evaluatedlg.lrs svneol=native#text/pascal debugger/evaluatedlg.lrs svneol=native#text/pascal
debugger/evaluatedlg.pp svneol=native#text/pascal debugger/evaluatedlg.pp svneol=native#text/pascal

View File

@ -1,550 +0,0 @@
object DebuggerOptionsForm: TDebuggerOptionsForm
Left = 410
Height = 443
Top = 196
Width = 482
ActiveControl = cmbDebuggerType
BorderIcons = [biSystemMenu]
Caption = 'Debugger Options'
ClientHeight = 443
ClientWidth = 482
OnCreate = DebuggerOptionsFormCREATE
OnDestroy = DebuggerOptionsFormDESTROY
ParentFont = False
Position = poScreenCenter
LCLVersion = '0.9.25'
object nbDebugOptions: TNotebook
AnchorSideBottom.Control = BtnPanel
Height = 408
Width = 482
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
PageIndex = 3
TabOrder = 0
object pgGeneral: TPage
Caption = 'pgGeneral'
ClientWidth = 474
ClientHeight = 382
object gbDebuggerType: TGroupBox
Left = 6
Height = 80
Top = 6
Width = 462
Align = alTop
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Debugger type and path'
ClientHeight = 80
ClientWidth = 462
ParentCtl3D = False
TabOrder = 0
object cmbDebuggerType: TComboBox
AnchorSideLeft.Control = gbDebuggerType
AnchorSideTop.Control = gbDebuggerType
AnchorSideRight.Control = gbDebuggerType
AnchorSideRight.Side = asrBottom
Left = 6
Height = 21
Top = 6
Width = 446
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 13
OnEditingDone = cmbDebuggerTypeCHANGE
OnSelect = cmbDebuggerTypeCHANGE
ParentCtl3D = False
TabOrder = 0
end
object cmbDebuggerPath: TComboBox
AnchorSideLeft.Control = gbDebuggerType
AnchorSideTop.Control = cmbDebuggerType
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = cmdOpenDebuggerPath
Left = 6
Height = 21
Top = 33
Width = 417
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
ItemHeight = 13
ParentCtl3D = False
TabOrder = 1
end
object cmdOpenDebuggerPath: TButton
AnchorSideTop.Control = cmbDebuggerPath
AnchorSideRight.Control = gbDebuggerType
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = cmbDebuggerPath
AnchorSideBottom.Side = asrBottom
Left = 429
Height = 21
Top = 33
Width = 23
Anchors = [akTop, akRight, akBottom]
BorderSpacing.Right = 6
Caption = '...'
OnClick = cmdOpenDebuggerPathCLICK
TabOrder = 2
end
end
object gbAdditionalSearchPath: TGroupBox
AnchorSideLeft.Control = pgGeneral
AnchorSideTop.Control = gbDebuggerType
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = pgGeneral
AnchorSideRight.Side = asrBottom
Left = 6
Height = 55
Top = 92
Width = 462
Align = alTop
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Additional search path'
ClientHeight = 55
ClientWidth = 462
ParentCtl3D = False
TabOrder = 1
object txtAdditionalPath: TEdit
AnchorSideLeft.Control = gbAdditionalSearchPath
AnchorSideTop.Control = gbAdditionalSearchPath
AnchorSideRight.Control = cmdOpenAdditionalPath
Left = 6
Height = 25
Top = 6
Width = 417
Anchors = [akTop, akLeft, akRight]
BorderSpacing.Around = 6
TabOrder = 0
end
object cmdOpenAdditionalPath: TButton
AnchorSideTop.Control = txtAdditionalPath
AnchorSideRight.Control = gbAdditionalSearchPath
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = txtAdditionalPath
AnchorSideBottom.Side = asrBottom
Left = 429
Height = 25
Top = 6
Width = 23
Anchors = [akTop, akRight, akBottom]
BorderSpacing.Right = 6
Caption = '...'
OnClick = cmdOpenAdditionalPathClick
TabOrder = 1
end
end
object gbDebuggerSpecific: TGroupBox
AnchorSideLeft.Control = pgGeneral
AnchorSideTop.Control = gcbDebuggerGeneralOptions
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = pgGeneral
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = pgGeneral
AnchorSideBottom.Side = asrBottom
Left = 6
Height = 161
Top = 215
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Debugger specific options (depends on type of debugger)'
ClientHeight = 161
ClientWidth = 462
ParentCtl3D = False
TabOrder = 2
object pnlDebugSpecific: TPanel
Left = 6
Height = 131
Top = 6
Width = 446
Align = alClient
BorderSpacing.Around = 6
BevelOuter = bvNone
BorderWidth = 4
FullRepaint = False
TabOrder = 0
TabStop = True
end
end
object gcbDebuggerGeneralOptions: TCheckGroup
AnchorSideLeft.Control = pgGeneral
AnchorSideTop.Control = gbAdditionalSearchPath
AnchorSideTop.Side = asrBottom
AnchorSideRight.Control = pgGeneral
AnchorSideRight.Side = asrBottom
Left = 6
Height = 56
Top = 153
Width = 462
Align = alTop
AutoFill = True
BorderSpacing.Around = 6
Caption = 'Debugger general options'
ChildSizing.LeftRightSpacing = 6
ChildSizing.TopBottomSpacing = 6
ChildSizing.EnlargeHorizontal = crsHomogenousChildResize
ChildSizing.EnlargeVertical = crsHomogenousChildResize
ChildSizing.ShrinkHorizontal = crsScaleChilds
ChildSizing.ShrinkVertical = crsScaleChilds
ChildSizing.Layout = cclLeftToRightThenTopToBottom
ChildSizing.ControlsPerLine = 1
TabOrder = 3
end
end
object pgEventLog: TPage
Caption = 'pgEventLog'
ClientWidth = 474
ClientHeight = 382
object gbGeneral: TGroupBox
Left = 6
Height = 132
Top = 6
Width = 462
Align = alTop
BorderSpacing.Around = 6
Caption = 'General'
ClientHeight = 132
ClientWidth = 462
ParentCtl3D = False
TabOrder = 0
object chkClearLogOnRun: TCheckBox
Left = 4
Height = 19
Top = 5
Width = 102
Caption = 'Clear log on run'
TabOrder = 0
end
object chkLimitLinecount: TCheckBox
Left = 4
Height = 19
Top = 29
Width = 106
Caption = 'Limit linecount to'
TabOrder = 1
end
object seLimitLinecount: TSpinEdit
Left = 46
Height = 20
Top = 54
Width = 82
Enabled = False
TabOrder = 2
end
end
object gbMessages: TGroupBox
Left = 6
Height = 232
Top = 144
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Messages'
ClientHeight = 232
ClientWidth = 462
Enabled = False
ParentCtl3D = False
TabOrder = 1
object chkMessagesBreakpoint: TCheckBox
Left = 4
Height = 19
Top = 5
Width = 77
AllowGrayed = True
Caption = 'Breakpoint'
TabOrder = 0
end
object chkMessagesProcess: TCheckBox
Left = 4
Height = 19
Top = 29
Width = 63
AllowGrayed = True
Caption = 'Process'
TabOrder = 1
end
object chkMessagesThread: TCheckBox
Left = 4
Height = 19
Top = 53
Width = 60
AllowGrayed = True
Caption = 'Thread'
TabOrder = 2
end
object chkMessagesModule: TCheckBox
Left = 4
Height = 19
Top = 77
Width = 60
AllowGrayed = True
Caption = 'Module'
TabOrder = 3
end
object chkMessagesOutput: TCheckBox
Left = 4
Height = 19
Top = 101
Width = 60
AllowGrayed = True
Caption = 'Output'
TabOrder = 4
end
object chkMessagesWindow: TCheckBox
Left = 4
Height = 19
Top = 125
Width = 64
AllowGrayed = True
Caption = 'Window'
TabOrder = 5
end
object chkMessagesInterface: TCheckBox
Left = 4
Height = 19
Top = 149
Width = 71
AllowGrayed = True
Caption = 'Interface'
TabOrder = 6
end
end
end
object pgExceptions: TPage
Caption = 'pgExceptions'
ClientWidth = 474
ClientHeight = 382
object bgIgnoreExceptions: TGroupBox
Left = 6
Height = 345
Top = 6
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Ignore these exceptions'
ClientHeight = 345
ClientWidth = 462
ParentCtl3D = False
TabOrder = 0
object clbExceptions: TCheckListBox
AnchorSideRight.Side = asrBottom
Left = 6
Height = 256
Top = 6
Width = 446
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
OnClick = clbExceptionsCLICK
TabOrder = 0
end
object cmdExceptionAdd: TBitBtn
AnchorSideRight.Control = cmdExceptionRemove
AnchorSideBottom.Control = bgIgnoreExceptions
AnchorSideBottom.Side = asrBottom
Left = 296
Height = 23
Top = 298
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Add'
Constraints.MinWidth = 75
NumGlyphs = 0
OnClick = cmdExceptionAddCLICK
TabOrder = 1
end
object cmdExceptionRemove: TBitBtn
AnchorSideRight.Control = bgIgnoreExceptions
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = bgIgnoreExceptions
AnchorSideBottom.Side = asrBottom
Left = 377
Height = 23
Top = 298
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Remove'
Constraints.MinWidth = 75
Enabled = False
NumGlyphs = 0
OnClick = cmdExceptionRemoveCLICK
TabOrder = 2
end
end
object chkBreakOnException: TCheckBox
Left = 6
Height = 19
Top = 357
Width = 462
Align = alBottom
AllowGrayed = True
Anchors = [akLeft, akBottom]
BorderSpacing.Around = 6
Caption = 'Break on Lazarus Exceptions'
TabOrder = 1
end
end
object pgSignals: TPage
Caption = 'pgSignals'
ClientWidth = 474
ClientHeight = 382
object gbSignals: TGroupBox
Left = 6
Height = 370
Top = 6
Width = 462
Align = alClient
BorderSpacing.Around = 6
Caption = 'Signals'
ClientHeight = 352
ClientWidth = 458
ParentCtl3D = False
TabOrder = 0
object lvSignals: TListView
Left = 6
Height = 292
Top = 6
Width = 446
Align = alTop
Anchors = [akTop, akLeft, akRight, akBottom]
BorderSpacing.Around = 6
Columns = <
item
Caption = 'Name'
Width = 200
end
item
Caption = 'ID'
end
item
Caption = 'Handled by'
Width = 75
end
item
Caption = 'Resume'
Width = 107
end>
PopupMenu = popSignal
TabOrder = 0
ViewStyle = vsReport
end
object cmdSignalRemove: TBitBtn
AnchorSideRight.Control = gbSignals
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Control = gbSignals
AnchorSideBottom.Side = asrBottom
Left = 377
Height = 23
Top = 323
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Remove'
Constraints.MinWidth = 75
Enabled = False
NumGlyphs = 0
TabOrder = 1
end
object cmdSignalAdd: TBitBtn
AnchorSideRight.Control = cmdSignalRemove
AnchorSideBottom.Control = gbSignals
AnchorSideBottom.Side = asrBottom
Left = 296
Height = 23
Top = 323
Width = 75
Anchors = [akRight, akBottom]
AutoSize = True
BorderSpacing.Around = 6
Caption = 'Add'
Constraints.MinWidth = 75
NumGlyphs = 0
TabOrder = 2
end
end
end
end
object BtnPanel: TPanel
Height = 35
Top = 408
Width = 482
Align = alBottom
AutoSize = True
BevelOuter = bvNone
ClientHeight = 35
ClientWidth = 482
TabOrder = 1
object cmdOK: TBitBtn
AnchorSideBottom.Side = asrBottom
Left = 320
Height = 23
Top = 6
Width = 75
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
Caption = '&OK'
Constraints.MinWidth = 75
Default = True
Kind = bkOK
NumGlyphs = 0
OnClick = cmdOKCLICK
TabOrder = 0
end
object cmdCancel: TBitBtn
AnchorSideRight.Side = asrBottom
AnchorSideBottom.Side = asrBottom
Left = 401
Height = 23
Top = 6
Width = 75
Align = alRight
AutoSize = True
BorderSpacing.Around = 6
Cancel = True
Caption = 'Cancel'
Constraints.MinWidth = 75
Kind = bkCancel
ModalResult = 2
NumGlyphs = 0
TabOrder = 1
end
end
object popSignal: TPopupMenu
left = 8
top = 448
object mnuHandledByProgram: TMenuItem
AutoCheck = True
Caption = 'Handled by Program'
GroupIndex = 1
RadioItem = True
end
object mnuiHandledByDebugger: TMenuItem
AutoCheck = True
Caption = 'Handled by Debugger'
GroupIndex = 1
RadioItem = True
end
object N1: TMenuItem
Caption = '-'
end
object mnuResumeHandled: TMenuItem
AutoCheck = True
Caption = 'Resume Handled'
GroupIndex = 2
RadioItem = True
end
object mnuResumeUnhandled: TMenuItem
AutoCheck = True
Caption = 'Resume Unhandled'
GroupIndex = 2
RadioItem = True
end
end
end

View File

@ -1,171 +0,0 @@
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TDebuggerOptionsForm','FORMDATA',[
'TPF0'#20'TDebuggerOptionsForm'#19'DebuggerOptionsForm'#4'Left'#3#154#1#6'Hei'
+'ght'#3#187#1#3'Top'#3#196#0#5'Width'#3#226#1#13'ActiveControl'#7#15'cmbDebu'
+'ggerType'#11'BorderIcons'#11#12'biSystemMenu'#0#7'Caption'#6#16'Debugger Op'
+'tions'#12'ClientHeight'#3#187#1#11'ClientWidth'#3#226#1#8'OnCreate'#7#25'De'
+'buggerOptionsFormCREATE'#9'OnDestroy'#7#26'DebuggerOptionsFormDESTROY'#10'P'
+'arentFont'#8#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.25'#0#9
+'TNotebook'#14'nbDebugOptions'#24'AnchorSideBottom.Control'#7#8'BtnPanel'#6
+'Height'#3#152#1#5'Width'#3#226#1#5'Align'#7#5'alTop'#7'Anchors'#11#5'akTop'
+#6'akLeft'#7'akRight'#8'akBottom'#0#9'PageIndex'#2#3#8'TabOrder'#2#0#0#5'TPa'
+'ge'#9'pgGeneral'#7'Caption'#6#9'pgGeneral'#11'ClientWidth'#3#218#1#12'Clien'
+'tHeight'#3'~'#1#0#9'TGroupBox'#14'gbDebuggerType'#4'Left'#2#6#6'Height'#2'P'
+#3'Top'#2#6#5'Width'#3#206#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpac'
+'ing.Around'#2#6#7'Caption'#6#22'Debugger type and path'#12'ClientHeight'#2
+'P'#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#0#0#9'TComboBox'
+#15'cmbDebuggerType'#22'AnchorSideLeft.Control'#7#14'gbDebuggerType'#21'Anch'
+'orSideTop.Control'#7#14'gbDebuggerType'#23'AnchorSideRight.Control'#7#14'gb'
+'DebuggerType'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'
+#2#21#3'Top'#2#6#5'Width'#3#190#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'
+#0#20'BorderSpacing.Around'#2#6#10'ItemHeight'#2#13#13'OnEditingDone'#7#21'c'
+'mbDebuggerTypeCHANGE'#8'OnSelect'#7#21'cmbDebuggerTypeCHANGE'#11'ParentCtl3'
+'D'#8#8'TabOrder'#2#0#0#0#9'TComboBox'#15'cmbDebuggerPath'#22'AnchorSideLeft'
+'.Control'#7#14'gbDebuggerType'#21'AnchorSideTop.Control'#7#15'cmbDebuggerTy'
+'pe'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#19
+'cmdOpenDebuggerPath'#4'Left'#2#6#6'Height'#2#21#3'Top'#2'!'#5'Width'#3#161#1
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6
+#10'ItemHeight'#2#13#11'ParentCtl3D'#8#8'TabOrder'#2#1#0#0#7'TButton'#19'cmd'
+'OpenDebuggerPath'#21'AnchorSideTop.Control'#7#15'cmbDebuggerPath'#23'Anchor'
+'SideRight.Control'#7#14'gbDebuggerType'#20'AnchorSideRight.Side'#7#9'asrBot'
+'tom'#24'AnchorSideBottom.Control'#7#15'cmbDebuggerPath'#21'AnchorSideBottom'
+'.Side'#7#9'asrBottom'#4'Left'#3#173#1#6'Height'#2#21#3'Top'#2'!'#5'Width'#2
+#23#7'Anchors'#11#5'akTop'#7'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2
+#6#7'Caption'#6#3'...'#7'OnClick'#7#24'cmdOpenDebuggerPathCLICK'#8'TabOrder'
+#2#2#0#0#0#9'TGroupBox'#22'gbAdditionalSearchPath'#22'AnchorSideLeft.Control'
+#7#9'pgGeneral'#21'AnchorSideTop.Control'#7#14'gbDebuggerType'#18'AnchorSide'
+'Top.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9'pgGeneral'#20'Anch'
+'orSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2'7'#3'Top'#2'\'#5'W'
+'idth'#3#206#1#5'Align'#7#5'alTop'#8'AutoSize'#9#20'BorderSpacing.Around'#2#6
+#7'Caption'#6#22'Additional search path'#12'ClientHeight'#2'7'#11'ClientWidt'
+'h'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#1#0#5'TEdit'#17'txtAdditionalPat'
+'h'#22'AnchorSideLeft.Control'#7#22'gbAdditionalSearchPath'#21'AnchorSideTop'
+'.Control'#7#22'gbAdditionalSearchPath'#23'AnchorSideRight.Control'#7#21'cmd'
+'OpenAdditionalPath'#4'Left'#2#6#6'Height'#2#25#3'Top'#2#6#5'Width'#3#161#1#7
+'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#20'BorderSpacing.Around'#2#6#8
+'TabOrder'#2#0#0#0#7'TButton'#21'cmdOpenAdditionalPath'#21'AnchorSideTop.Con'
+'trol'#7#17'txtAdditionalPath'#23'AnchorSideRight.Control'#7#22'gbAdditional'
+'SearchPath'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Con'
+'trol'#7#17'txtAdditionalPath'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Le'
+'ft'#3#173#1#6'Height'#2#25#3'Top'#2#6#5'Width'#2#23#7'Anchors'#11#5'akTop'#7
+'akRight'#8'akBottom'#0#19'BorderSpacing.Right'#2#6#7'Caption'#6#3'...'#7'On'
+'Click'#7#26'cmdOpenAdditionalPathClick'#8'TabOrder'#2#1#0#0#0#9'TGroupBox'
+#18'gbDebuggerSpecific'#22'AnchorSideLeft.Control'#7#9'pgGeneral'#21'AnchorS'
+'ideTop.Control'#7#25'gcbDebuggerGeneralOptions'#18'AnchorSideTop.Side'#7#9
+'asrBottom'#23'AnchorSideRight.Control'#7#9'pgGeneral'#20'AnchorSideRight.Si'
+'de'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#9'pgGeneral'#21'AnchorSid'
+'eBottom.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#3#161#0#3'Top'#3#215#0#5
+'Width'#3#206#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#7'Captio'
+'n'#6'7Debugger specific options (depends on type of debugger)'#12'ClientHei'
+'ght'#3#161#0#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#2#0#6
+'TPanel'#16'pnlDebugSpecific'#4'Left'#2#6#6'Height'#3#131#0#3'Top'#2#6#5'Wid'
+'th'#3#190#1#5'Align'#7#8'alClient'#20'BorderSpacing.Around'#2#6#10'BevelOut'
+'er'#7#6'bvNone'#11'BorderWidth'#2#4#11'FullRepaint'#8#8'TabOrder'#2#0#7'Tab'
+'Stop'#9#0#0#0#11'TCheckGroup'#25'gcbDebuggerGeneralOptions'#22'AnchorSideLe'
+'ft.Control'#7#9'pgGeneral'#21'AnchorSideTop.Control'#7#22'gbAdditionalSearc'
+'hPath'#18'AnchorSideTop.Side'#7#9'asrBottom'#23'AnchorSideRight.Control'#7#9
,'pgGeneral'#20'AnchorSideRight.Side'#7#9'asrBottom'#4'Left'#2#6#6'Height'#2
+'8'#3'Top'#3#153#0#5'Width'#3#206#1#5'Align'#7#5'alTop'#8'AutoFill'#9#20'Bor'
+'derSpacing.Around'#2#6#7'Caption'#6#24'Debugger general options'#28'ChildSi'
+'zing.LeftRightSpacing'#2#6#28'ChildSizing.TopBottomSpacing'#2#6#29'ChildSiz'
+'ing.EnlargeHorizontal'#7#24'crsHomogenousChildResize'#27'ChildSizing.Enlarg'
+'eVertical'#7#24'crsHomogenousChildResize'#28'ChildSizing.ShrinkHorizontal'#7
+#14'crsScaleChilds'#26'ChildSizing.ShrinkVertical'#7#14'crsScaleChilds'#18'C'
+'hildSizing.Layout'#7#29'cclLeftToRightThenTopToBottom'#27'ChildSizing.Contr'
+'olsPerLine'#2#1#8'TabOrder'#2#3#0#0#0#5'TPage'#10'pgEventLog'#7'Caption'#6
+#10'pgEventLog'#11'ClientWidth'#3#218#1#12'ClientHeight'#3'~'#1#0#9'TGroupBo'
+'x'#9'gbGeneral'#4'Left'#2#6#6'Height'#3#132#0#3'Top'#2#6#5'Width'#3#206#1#5
+'Align'#7#5'alTop'#20'BorderSpacing.Around'#2#6#7'Caption'#6#7'General'#12'C'
+'lientHeight'#3#132#0#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2
+#0#0#9'TCheckBox'#16'chkClearLogOnRun'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#5
+#5'Width'#2'f'#7'Caption'#6#16'Clear log on run'#8'TabOrder'#2#0#0#0#9'TChec'
+'kBox'#17'chkLimitLinecount'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#29#5'Width'
+#2'j'#7'Caption'#6#18'Limit linecount to'#8'TabOrder'#2#1#0#0#9'TSpinEdit'#16
+'seLimitLinecount'#4'Left'#2'.'#6'Height'#2#20#3'Top'#2'6'#5'Width'#2'R'#7'E'
+'nabled'#8#8'TabOrder'#2#2#0#0#0#9'TGroupBox'#10'gbMessages'#4'Left'#2#6#6'H'
+'eight'#3#232#0#3'Top'#3#144#0#5'Width'#3#206#1#5'Align'#7#8'alClient'#20'Bo'
+'rderSpacing.Around'#2#6#7'Caption'#6#8'Messages'#12'ClientHeight'#3#232#0#11
+'ClientWidth'#3#206#1#7'Enabled'#8#11'ParentCtl3D'#8#8'TabOrder'#2#1#0#9'TCh'
+'eckBox'#21'chkMessagesBreakpoint'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#5#5'W'
+'idth'#2'M'#11'AllowGrayed'#9#7'Caption'#6#10'Breakpoint'#8'TabOrder'#2#0#0#0
+#9'TCheckBox'#18'chkMessagesProcess'#4'Left'#2#4#6'Height'#2#19#3'Top'#2#29#5
+'Width'#2'?'#11'AllowGrayed'#9#7'Caption'#6#7'Process'#8'TabOrder'#2#1#0#0#9
+'TCheckBox'#17'chkMessagesThread'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'5'#5'W'
+'idth'#2'<'#11'AllowGrayed'#9#7'Caption'#6#6'Thread'#8'TabOrder'#2#2#0#0#9'T'
+'CheckBox'#17'chkMessagesModule'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'M'#5'Wi'
+'dth'#2'<'#11'AllowGrayed'#9#7'Caption'#6#6'Module'#8'TabOrder'#2#3#0#0#9'TC'
+'heckBox'#17'chkMessagesOutput'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'e'#5'Wid'
+'th'#2'<'#11'AllowGrayed'#9#7'Caption'#6#6'Output'#8'TabOrder'#2#4#0#0#9'TCh'
+'eckBox'#17'chkMessagesWindow'#4'Left'#2#4#6'Height'#2#19#3'Top'#2'}'#5'Widt'
+'h'#2'@'#11'AllowGrayed'#9#7'Caption'#6#6'Window'#8'TabOrder'#2#5#0#0#9'TChe'
+'ckBox'#20'chkMessagesInterface'#4'Left'#2#4#6'Height'#2#19#3'Top'#3#149#0#5
+'Width'#2'G'#11'AllowGrayed'#9#7'Caption'#6#9'Interface'#8'TabOrder'#2#6#0#0
+#0#0#5'TPage'#12'pgExceptions'#7'Caption'#6#12'pgExceptions'#11'ClientWidth'
+#3#218#1#12'ClientHeight'#3'~'#1#0#9'TGroupBox'#18'bgIgnoreExceptions'#4'Lef'
+'t'#2#6#6'Height'#3'Y'#1#3'Top'#2#6#5'Width'#3#206#1#5'Align'#7#8'alClient'
+#20'BorderSpacing.Around'#2#6#7'Caption'#6#23'Ignore these exceptions'#12'Cl'
+'ientHeight'#3'Y'#1#11'ClientWidth'#3#206#1#11'ParentCtl3D'#8#8'TabOrder'#2#0
+#0#13'TCheckListBox'#13'clbExceptions'#20'AnchorSideRight.Side'#7#9'asrBotto'
+'m'#4'Left'#2#6#6'Height'#3#0#1#3'Top'#2#6#5'Width'#3#190#1#5'Align'#7#5'alT'
+'op'#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpac'
+'ing.Around'#2#6#7'OnClick'#7#18'clbExceptionsCLICK'#8'TabOrder'#2#0#0#0#7'T'
+'BitBtn'#15'cmdExceptionAdd'#23'AnchorSideRight.Control'#7#18'cmdExceptionRe'
+'move'#24'AnchorSideBottom.Control'#7#18'bgIgnoreExceptions'#21'AnchorSideBo'
+'ttom.Side'#7#9'asrBottom'#4'Left'#3'('#1#6'Height'#2#23#3'Top'#3'*'#1#5'Wid'
+'th'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderSpac'
+'ing.Around'#2#6#7'Caption'#6#3'Add'#20'Constraints.MinWidth'#2'K'#9'NumGlyp'
+'hs'#2#0#7'OnClick'#7#20'cmdExceptionAddCLICK'#8'TabOrder'#2#1#0#0#7'TBitBtn'
+#18'cmdExceptionRemove'#23'AnchorSideRight.Control'#7#18'bgIgnoreExceptions'
+#20'AnchorSideRight.Side'#7#9'asrBottom'#24'AnchorSideBottom.Control'#7#18'b'
+'gIgnoreExceptions'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3'y'#1#6
+'Height'#2#23#3'Top'#3'*'#1#5'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBotto'
+'m'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#6'Remove'#20'C'
+'onstraints.MinWidth'#2'K'#7'Enabled'#8#9'NumGlyphs'#2#0#7'OnClick'#7#23'cmd'
+'ExceptionRemoveCLICK'#8'TabOrder'#2#2#0#0#0#9'TCheckBox'#19'chkBreakOnExcep'
+'tion'#4'Left'#2#6#6'Height'#2#19#3'Top'#3'e'#1#5'Width'#3#206#1#5'Align'#7#8
+'alBottom'#11'AllowGrayed'#9#7'Anchors'#11#6'akLeft'#8'akBottom'#0#20'Border'
+'Spacing.Around'#2#6#7'Caption'#6#27'Break on Lazarus Exceptions'#8'TabOrder'
+#2#1#0#0#0#5'TPage'#9'pgSignals'#7'Caption'#6#9'pgSignals'#11'ClientWidth'#3
+#218#1#12'ClientHeight'#3'~'#1#0#9'TGroupBox'#9'gbSignals'#4'Left'#2#6#6'Hei'
+'ght'#3'r'#1#3'Top'#2#6#5'Width'#3#206#1#5'Align'#7#8'alClient'#20'BorderSpa'
,'cing.Around'#2#6#7'Caption'#6#7'Signals'#12'ClientHeight'#3'`'#1#11'ClientW'
+'idth'#3#202#1#11'ParentCtl3D'#8#8'TabOrder'#2#0#0#9'TListView'#9'lvSignals'
+#4'Left'#2#6#6'Height'#3'$'#1#3'Top'#2#6#5'Width'#3#190#1#5'Align'#7#5'alTop'
+#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#8'akBottom'#0#20'BorderSpacing.'
+'Around'#2#6#7'Columns'#14#1#7'Caption'#6#4'Name'#5'Width'#3#200#0#0#1#7'Cap'
+'tion'#6#2'ID'#0#1#7'Caption'#6#10'Handled by'#5'Width'#2'K'#0#1#7'Caption'#6
+#6'Resume'#5'Width'#2'k'#0#0#9'PopupMenu'#7#9'popSignal'#8'TabOrder'#2#0#9'V'
+'iewStyle'#7#8'vsReport'#0#0#7'TBitBtn'#15'cmdSignalRemove'#23'AnchorSideRig'
+'ht.Control'#7#9'gbSignals'#20'AnchorSideRight.Side'#7#9'asrBottom'#24'Ancho'
+'rSideBottom.Control'#7#9'gbSignals'#21'AnchorSideBottom.Side'#7#9'asrBottom'
+#4'Left'#3'y'#1#6'Height'#2#23#3'Top'#3'C'#1#5'Width'#2'K'#7'Anchors'#11#7'a'
+'kRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderSpacing.Around'#2#6#7'Caption'
+#6#6'Remove'#20'Constraints.MinWidth'#2'K'#7'Enabled'#8#9'NumGlyphs'#2#0#8'T'
+'abOrder'#2#1#0#0#7'TBitBtn'#12'cmdSignalAdd'#23'AnchorSideRight.Control'#7
+#15'cmdSignalRemove'#24'AnchorSideBottom.Control'#7#9'gbSignals'#21'AnchorSi'
+'deBottom.Side'#7#9'asrBottom'#4'Left'#3'('#1#6'Height'#2#23#3'Top'#3'C'#1#5
+'Width'#2'K'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8'AutoSize'#9#20'BorderS'
+'pacing.Around'#2#6#7'Caption'#6#3'Add'#20'Constraints.MinWidth'#2'K'#9'NumG'
+'lyphs'#2#0#8'TabOrder'#2#2#0#0#0#0#0#6'TPanel'#8'BtnPanel'#6'Height'#2'#'#3
+'Top'#3#152#1#5'Width'#3#226#1#5'Align'#7#8'alBottom'#8'AutoSize'#9#10'Bevel'
+'Outer'#7#6'bvNone'#12'ClientHeight'#2'#'#11'ClientWidth'#3#226#1#8'TabOrder'
+#2#1#0#7'TBitBtn'#5'cmdOK'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3
+'@'#1#6'Height'#2#23#3'Top'#2#6#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSi'
+'ze'#9#20'BorderSpacing.Around'#2#6#7'Caption'#6#3'&OK'#20'Constraints.MinWi'
+'dth'#2'K'#7'Default'#9#4'Kind'#7#4'bkOK'#9'NumGlyphs'#2#0#7'OnClick'#7#10'c'
+'mdOKCLICK'#8'TabOrder'#2#0#0#0#7'TBitBtn'#9'cmdCancel'#20'AnchorSideRight.S'
+'ide'#7#9'asrBottom'#21'AnchorSideBottom.Side'#7#9'asrBottom'#4'Left'#3#145#1
+#6'Height'#2#23#3'Top'#2#6#5'Width'#2'K'#5'Align'#7#7'alRight'#8'AutoSize'#9
+#20'BorderSpacing.Around'#2#6#6'Cancel'#9#7'Caption'#6#6'Cancel'#20'Constrai'
+'nts.MinWidth'#2'K'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'#2
+#0#8'TabOrder'#2#1#0#0#0#10'TPopupMenu'#9'popSignal'#4'left'#2#8#3'top'#3#192
+#1#0#9'TMenuItem'#19'mnuHandledByProgram'#9'AutoCheck'#9#7'Caption'#6#18'Han'
+'dled by Program'#10'GroupIndex'#2#1#9'RadioItem'#9#0#0#9'TMenuItem'#21'mnui'
+'HandledByDebugger'#9'AutoCheck'#9#7'Caption'#6#19'Handled by Debugger'#10'G'
+'roupIndex'#2#1#9'RadioItem'#9#0#0#9'TMenuItem'#2'N1'#7'Caption'#6#1'-'#0#0#9
+'TMenuItem'#16'mnuResumeHandled'#9'AutoCheck'#9#7'Caption'#6#14'Resume Handl'
+'ed'#10'GroupIndex'#2#2#9'RadioItem'#9#0#0#9'TMenuItem'#18'mnuResumeUnhandle'
+'d'#9'AutoCheck'#9#7'Caption'#6#16'Resume Unhandled'#10'GroupIndex'#2#2#9'Ra'
+'dioItem'#9#0#0#0#0
]);

View File

@ -1,507 +0,0 @@
{
/***************************************************************************
DebugOptionsFrm.pas
-------------------
***************************************************************************/
***************************************************************************
* *
* This source is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This code is distributed in the hope that it will be useful, but *
* WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
* General Public License for more details. *
* *
* A copy of the GNU General Public License is available on the World *
* Wide Web at <http://www.gnu.org/copyleft/gpl.html>. You can also *
* obtain it by writing to the Free Software Foundation, *
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
* *
***************************************************************************
}
unit DebugOptionsFrm;
{$mode objfpc} {$H+}
interface
uses
Classes, SysUtils, TypInfo, LResources, Forms, Controls, Graphics, Dialogs,
ExtCtrls, StdCtrls, Buttons, ComCtrls, Menus, Spin, CheckLst, FileUtil,
PropEdits, ObjectInspector,
LazarusIDEStrConsts, InputHistory, IDEProcs, LCLProc,
PathEditorDlg, EnvironmentOpts, BaseDebugManager, Debugger, DBGUtils;
type
{ TDebuggerOptionsForm }
TDebuggerOptionsForm = class (TForm)
cmdExceptionAdd: TBitBtn;
cmdExceptionRemove: TBitBtn;
cmdOK: TBitBtn;
cmdCancel: TBitBtn;
cmdSignalAdd: TBitBtn;
cmdSignalRemove: TBitBtn;
gcbDebuggerGeneralOptions: TCheckGroup;
clbExceptions: TCHECKLISTBOX;
chkMessagesInterface: TCHECKBOX;
chkClearLogOnRun: TCHECKBOX;
chkLimitLineCount: TCHECKBOX;
chkMessagesBreakpoint: TCHECKBOX;
chkMessagesProcess: TCHECKBOX;
chkMessagesThread: TCHECKBOX;
chkMessagesModule: TCHECKBOX;
chkMessagesOutput: TCHECKBOX;
chkMessagesWindow: TCHECKBOX;
cmdOpenDebuggerPath: TBUTTON;
cmdOpenAdditionalPath: TBUTTON;
chkBreakOnException: TCHECKBOX;
cmbDebuggerType: TCOMBOBOX;
cmbDebuggerPath: TCOMBOBOX;
N1: TMENUITEM;
BtnPanel: TPanel;
pnlDebugSpecific: TPanel;
seLimitLinecount: TSPINEDIT;
txtAdditionalPath: TEDIT;
gbDebuggerType: TGROUPBOX;
gbAdditionalSearchPath: TGROUPBOX;
gbDebuggerSpecific: TGROUPBOX;
gbGeneral: TGROUPBOX;
gbMessages: TGROUPBOX;
bgIgnoreExceptions: TGROUPBOX;
gbSignals: TGROUPBOX;
lvSignals: TLISTVIEW;
mnuResumeUnhandled: TMENUITEM;
mnuHandledByProgram: TMENUITEM;
mnuiHandledByDebugger: TMENUITEM;
mnuResumeHandled: TMENUITEM;
nbDebugOptions: TNOTEBOOK;
pgSignals: TPAGE;
pgExceptions: TPAGE;
pgEventLog: TPAGE;
pgGeneral: TPAGE;
popSignal: TPOPUPMENU;
PropertyGrid: TOIPropertyGrid;
procedure DebuggerOptionsFormCREATE(Sender: TObject);
procedure DebuggerOptionsFormDESTROY(Sender: TObject);
procedure clbExceptionsCLICK (Sender: TObject );
procedure cmbDebuggerTypeCHANGE(Sender: TObject);
procedure cmdExceptionAddCLICK (Sender: TObject );
procedure cmdExceptionRemoveCLICK (Sender: TObject );
procedure cmdOKCLICK (Sender: TObject );
procedure cmdOpenAdditionalPathClick(Sender: TObject);
procedure cmdOpenDebuggerPathCLICK(Sender: TObject);
private
FPropertyEditorHook: TPropertyEditorHook;
FExceptionDeleteList: TStringList;
FOldDebuggerPathAndParams: string;
FCurDebuggerClass: TDebuggerClass; // currently shown debugger class
procedure AddExceptionLine(const AException: TIDEException; AName: String);
procedure AddSignalLine(const ASignal: TIDESignal);
function CheckValues: boolean;
procedure FetchDebuggerClass;
procedure FetchDebuggerGeneralOptions;
procedure FetchDebuggerSpecificOptions;
function GetDebuggerClass: TDebuggerClass;
procedure SetDebuggerClass(const AClass: TDebuggerClass);
public
end;
var
DebuggerOptionsForm: TDebuggerOptionsForm;
implementation
const
HANDLEDBY_CAPTION: array [Boolean] of String = ('Program', 'Debugger');
RESUME_CAPTION: array[Boolean] of String = ('Unhandled', 'Handled');
{ TDebuggerOptionsForm }
procedure TDebuggerOptionsForm.AddExceptionLine(const AException: TIDEException;
AName: String);
var
idx: Integer;
begin
if (AName = '') and (AException <> nil)
then AName := AException.Name;
if AName = '' then Exit;
idx := clbExceptions.Items.AddObject(AName, AException);
clbExceptions.Checked[idx] := (AException = nil) or AException.Enabled;
end;
procedure TDebuggerOptionsForm.AddSignalLine(const ASignal: TIDESignal);
var
Item: TListItem;
begin
Item := lvSignals.Items.Add;
Item.Caption := ASignal.Name;
Item.SubItems.Add(IntToStr(ASignal.ID));
Item.SubItems.Add(HANDLEDBY_CAPTION[ASignal.HandledByDebugger]);
Item.SubItems.Add(RESUME_CAPTION[ASignal.ResumeHandled]);
Item.Data := ASignal;
end;
function TDebuggerOptionsForm.CheckValues: boolean;
begin
Result := false;
if assigned(FCurDebuggerClass) and FCurDebuggerClass.HasExePath and
not CheckExecutable(FOldDebuggerPathAndParams,cmbDebuggerPath.Text,
lisEnvOptDlgInvalidDebuggerFilename,
lisEnvOptDlgInvalidDebuggerFilenameMsg)
then exit;
Result := true;
end;
procedure TDebuggerOptionsForm.FetchDebuggerClass;
var
n: PtrInt;
DbgClass, CurClass: TDebuggerClass;
List: TStringList;
begin
List := TStringList.Create;
List.Sorted := True;
CurClass := nil;
for n := 0 to DebugBoss.DebuggerCount - 1 do
begin
DbgClass := DebugBoss.Debuggers[n];
List.AddObject(DbgClass.Caption, TObject(n));
if (FCurDebuggerClass = nil)
and (CompareText(DbgClass.ClassName, EnvironmentOptions.DebuggerClass) = 0)
then CurClass := DbgClass;
end;
cmbDebuggerType.Items.Assign(List);
FreeAndNil(List);
SetDebuggerClass(CurClass);
if FCurDebuggerClass = nil
then SetComboBoxText(cmbDebuggerType, '(none)')
else SetComboBoxText(cmbDebuggerType, FCurDebuggerClass.Caption);
txtAdditionalPath.Text:=EnvironmentOptions.DebuggerSearchPath;
end;
procedure TDebuggerOptionsForm.FetchDebuggerGeneralOptions;
begin
// IMPORTANT if more items are added the indexes must be updated here!
gcbDebuggerGeneralOptions.Checked[0] := EnvironmentOptions.DebuggerShowStopMessage;
end;
procedure TDebuggerOptionsForm.FetchDebuggerSpecificOptions;
var
S: String;
i: Integer;
Filename: string;
NewFilename: string;
begin
with cmbDebuggerPath.Items do begin
BeginUpdate;
Assign(EnvironmentOptions.DebuggerFileHistory);
if (Count = 0)
and (FCurDebuggerClass <> nil)
then begin
S := FCurDebuggerClass.ExePaths;
while S <> '' do
begin
Add(GetPart([], [';'], S));
if S <> '' then System.Delete(S, 1, 1);
end;
end;
EndUpdate;
end;
Filename:=cmbDebuggerPath.Text;
if Filename='' then begin
for i:=0 to cmbDebuggerPath.Items.Count-1 do begin
NewFilename:=cmbDebuggerPath.Items[i];
if FileExistsCached(NewFilename) then begin
Filename:=NewFilename;
break;
end;
NewFilename:=FindDefaultExecutablePath(ExtractFileName(Filename));
if NewFilename<>'' then begin
Filename:=NewFilename;
break;
end;
end;
end;
SetComboBoxText(cmbDebuggerPath,Filename,20);
PropertyGrid.Selection.Clear;
if FCurDebuggerClass<>nil then begin
PropertyGrid.Selection.Add(FCurDebuggerClass.GetProperties);
end;
PropertyGrid.BuildPropertyList;
end;
function TDebuggerOptionsForm.GetDebuggerClass: TDebuggerClass;
var
idx: PtrInt;
begin
Result := nil;
idx := cmbDebuggerType.ItemIndex;
if idx = -1 then Exit;
idx := PtrInt(cmbDebuggerType.Items.Objects[idx]);
if idx = -1 then Exit;
Result := DebugBoss.Debuggers[idx];
end;
procedure TDebuggerOptionsForm.SetDebuggerClass(const AClass: TDebuggerClass);
begin
if FCurDebuggerClass = AClass then Exit;
FCurDebuggerClass := AClass;
FetchDebuggerSpecificOptions;
end;
procedure TDebuggerOptionsForm.clbExceptionsCLICK (Sender: TObject );
begin
cmdExceptionRemove.Enabled := clbExceptions.ItemIndex <> -1;
end;
procedure TDebuggerOptionsForm.cmbDebuggerTypeCHANGE(Sender: TObject);
begin
SetDebuggerClass(GetDebuggerClass);
end;
procedure TDebuggerOptionsForm.cmdExceptionAddCLICK(Sender: TObject);
var
idx: Integer;
S: String;
begin
if not InputQuery('Add Exception', 'Enter the name of the exception', S)
then Exit;
if clbExceptions.Items.IndexOf(S) = -1
then begin
idx := FExceptionDeleteList.IndexOf(S);
if idx = -1
then begin
AddExceptionLine(nil, S);
end
else begin
AddExceptionLine(TIDEException(FExceptionDeleteList.Objects[idx]), S);
FExceptionDeleteList.Delete(idx);
end;
end
else begin
MessageDlg('Duplicate Exception name', mtError, [mbOK], 0);
end;
end;
procedure TDebuggerOptionsForm.cmdExceptionRemoveCLICK(Sender: TObject);
var
idx: Integer;
obj: TObject;
begin
idx := clbExceptions.ItemIndex;
if idx <> -1
then begin
obj := clbExceptions.Items.Objects[idx];
if obj <> nil
then FExceptionDeleteList.AddObject(clbExceptions.Items[idx], obj);
clbExceptions.Items.Delete(idx);
end;
cmdExceptionRemove.Enabled := clbExceptions.ItemIndex <> -1;
end;
procedure TDebuggerOptionsForm.cmdOKCLICK(Sender: TObject );
var
n: Integer;
ie: TIDEException;
begin
if not CheckValues then exit;
for n := 0 to FExceptionDeleteList.Count - 1 do
FExceptionDeleteList.Objects[n].Free;
for n := 0 to clbExceptions.Items.Count - 1 do
begin
ie := TIDEException(clbExceptions.Items.Objects[n]);
if ie = nil
then begin
ie := DebugBoss.Exceptions.Add(clbExceptions.Items[n]);
ie.Enabled := clbExceptions.Checked[n];
end
else begin
ie.BeginUpdate;
try
ie.Name := clbExceptions.Items[n];
ie.Enabled := clbExceptions.Checked[n];
finally
ie.EndUpdate;
end;
end;
end;
EnvironmentOptions.DebuggerFilename:=cmbDebuggerPath.Text;
EnvironmentOptions.DebuggerFileHistory.Assign(cmbDebuggerPath.Items);
EnvironmentOptions.DebuggerSearchPath:=
TrimSearchPath(txtAdditionalPath.Text,'');
// IMPORTANT if more items are added the indexes must be updated here!
EnvironmentOptions.DebuggerShowStopMessage := gcbDebuggerGeneralOptions.Checked[0];
if FCurDebuggerClass = nil
then EnvironmentOptions.DebuggerClass := ''
else EnvironmentOptions.DebuggerClass := FCurDebuggerClass.ClassName;
ModalResult:=mrOk;
end;
procedure TDebuggerOptionsForm.cmdOpenAdditionalPathClick(Sender: TObject);
begin
PathEditorDialog.Path:=txtAdditionalPath.Text;
PathEditorDialog.Templates:=SetDirSeparators(
'$(LazarusDir)/include/$(TargetOS)'
+';$(FPCSrcDir)/rtl/inc/'
+';$(FPCSrcDir)/rtl/$(SrcOS)'
+';$(FPCSrcDir)/rtl/$(TargetOS)'
);
if PathEditorDialog.ShowModal=mrOk then
txtAdditionalPath.Text:=PathEditorDialog.Path;
end;
procedure TDebuggerOptionsForm.cmdOpenDebuggerPathCLICK(Sender: TObject);
var
OpenDialog: TOpenDialog;
AFilename: string;
begin
OpenDialog:=TOpenDialog.Create(nil);
try
InputHistories.ApplyFileDialogSettings(OpenDialog);
OpenDialog.Options:=OpenDialog.Options+[ofPathMustExist];
OpenDialog.Title:=lisChooseDebuggerPath;
if OpenDialog.Execute then begin
AFilename:=CleanAndExpandFilename(OpenDialog.Filename);
SetComboBoxText(cmbDebuggerPath,AFilename);
CheckExecutable(FOldDebuggerPathAndParams,cmbDebuggerPath.Text,
lisEnvOptDlgInvalidDebuggerFilename,
lisEnvOptDlgInvalidDebuggerFilenameMsg);
end;
InputHistories.StoreFileDialogSettings(OpenDialog);
finally
OpenDialog.Free;
end;
end;
procedure TDebuggerOptionsForm.DebuggerOptionsFormCREATE(Sender: TObject);
var
n: Integer;
begin
//translations
pgGeneral.Caption := lisMenuInsertGeneral;
gbDebuggerType.Caption := dlgDebugType;
gbAdditionalSearchPath.Caption := lisDebugOptionsFrmAdditionalSearchPath;
gcbDebuggerGeneralOptions.Caption := lisDebugOptionsFrmDebuggerGeneralOptions;
gcbDebuggerGeneralOptions.Items.Add(lisDebugOptionsFrmShowMessageOnStop);
gbDebuggerSpecific.Caption := lisDebugOptionsFrmDebuggerSpecific;
pgEventLog.Caption := lisDebugOptionsFrmEventLog;
gbGeneral.Caption := lisMenuInsertGeneral;
chkClearLogOnRun.Caption := lisDebugOptionsFrmClearLogOnRun;
chkLimitLinecount.Caption := lisDebugOptionsFrmLimitLinecountTo;
gbMessages.Caption := lisMenuViewMessages;
chkMessagesBreakpoint.Caption := lisDebugOptionsFrmBreakpoint;
chkMessagesProcess.Caption := lisDebugOptionsFrmProcess;
chkMessagesThread.Caption := lisDebugOptionsFrmThread;
chkMessagesModule.Caption := lisDebugOptionsFrmModule;
chkMessagesOutput.Caption := lisDebugOptionsFrmOutput;
chkMessagesWindow.Caption := lisDebugOptionsFrmWindow;
chkMessagesInterface.Caption := lisDebugOptionsFrmInterface;
pgExceptions.Caption := lisDebugOptionsFrmLanguageExceptions;
bgIgnoreExceptions.Caption := lisDebugOptionsFrmIgnoreTheseExceptions;
cmdExceptionRemove.Caption := lisExtToolRemove;
cmdExceptionAdd.Caption := lisCodeTemplAdd;
cmdExceptionRemove.LoadGlyphFromLazarusResource('laz_delete');
cmdExceptionAdd.LoadGlyphFromLazarusResource('laz_add');
chkBreakOnException.Caption := lisDebugOptionsFrmBreakOnLazarusExceptions;
pgSignals.Caption := lisDebugOptionsFrmOSExceptions;
gbSignals.Caption := lisDebugOptionsFrmSignals;
lvSignals.Column[0].Caption := lisDebugOptionsFrmName;
lvSignals.Column[1].Caption := lisDebugOptionsFrmID;
lvSignals.Column[2].Caption := lisDebugOptionsFrmHandledBy;
lvSignals.Column[3].Caption := lisDebugOptionsFrmResume;
cmdSignalAdd.Caption := lisCodeTemplAdd;
cmdSignalRemove.Caption := lisExtToolRemove;
cmdSignalAdd.LoadGlyphFromLazarusResource('laz_add');
cmdSignalRemove.LoadGlyphFromLazarusResource('laz_delete');
mnuHandledByProgram.Caption := lisDebugOptionsFrmHandledByProgram;
mnuiHandledByDebugger.Caption := lisDebugOptionsFrmHandledByDebugger;
mnuResumeHandled.Caption := lisDebugOptionsFrmResumeHandled;
mnuResumeUnhandled.Caption := lisDebugOptionsFrmResumeUnhandled;
cmdOK.Caption:=lisOkBtn;
cmdCancel.Caption:=dlgCancel;
cmdOK.LoadGlyphFromLazarusResource('btn_ok');
cmdCancel.LoadGlyphFromLazarusResource('btn_cancel');
FCurDebuggerClass := nil;
FExceptionDeleteList := TStringList.Create;
FExceptionDeleteList.Sorted := True;
for n := 0 to DebugBoss.Exceptions.Count - 1 do
begin
AddExceptionLine(DebugBoss.Exceptions[n], '');
end;
for n := 0 to DebugBoss.Signals.Count - 1 do
begin
AddSignalLine(DebugBoss.Signals[n]);
end;
// create the PropertyEditorHook (the interface to the properties)
FPropertyEditorHook:=TPropertyEditorHook.Create;
// create the PropertyGrid
PropertyGrid:=TOIPropertyGrid.CreateWithParams(Self,FPropertyEditorHook
,[tkUnknown, tkInteger, tkChar, tkEnumeration, tkFloat, tkSet{, tkMethod}
, tkSString, tkLString, tkAString, tkWString, tkVariant
{, tkArray, tkRecord, tkInterface}, tkClass, tkObject, tkWChar, tkBool
, tkInt64, tkQWord],
0);
with PropertyGrid do begin
Name:='PropertyGrid';
// Use panel for border
Parent := pnlDebugSpecific; //gbDebuggerSpecific;
Visible := True;
Align := alClient;
Layout := oilVertical;
RowSpacing := 4;
end;
FOldDebuggerPathAndParams:=EnvironmentOptions.DebuggerFilename;
cmbDebuggerPath.Text:=FOldDebuggerPathAndParams;
FetchDebuggerClass;
FetchDebuggerGeneralOptions;
// Fix designtime changes
nbDebugOptions.PageIndex := 0;
end;
procedure TDebuggerOptionsForm.DebuggerOptionsFormDESTROY(Sender: TObject);
begin
FreeAndNil(FExceptionDeleteList);
FreeAndNil(FPropertyEditorHook);
end;
initialization
{$I debugoptionsfrm.lrs}
end.

View File

@ -45,7 +45,7 @@ uses
LCLType, LCLIntf, LCLType, LCLIntf,
SynEdit, CodeCache, CodeToolManager, SynEdit, CodeCache, CodeToolManager,
MenuIntf, IDECommands, LazIDEIntf, ProjectIntf, MenuIntf, IDECommands, LazIDEIntf, ProjectIntf,
LazConf, DebugOptionsFrm, LazConf,
CompilerOptions, EditorOptions, EnvironmentOpts, ProjectOpts, KeyMapping, SourceEditor, CompilerOptions, EditorOptions, EnvironmentOpts, ProjectOpts, KeyMapping, SourceEditor,
ProjectDefs, Project, IDEProcs, InputHistory, Debugger, ProjectDefs, Project, IDEProcs, InputHistory, Debugger,
IDEOptionDefs, LazarusIDEStrConsts, IDEOptionDefs, LazarusIDEStrConsts,
@ -74,7 +74,6 @@ type
// Menu events // Menu events
procedure mnuViewDebugDialogClick(Sender: TObject); procedure mnuViewDebugDialogClick(Sender: TObject);
procedure mnuResetDebuggerClicked(Sender: TObject); procedure mnuResetDebuggerClicked(Sender: TObject);
procedure mnuDebuggerOptionsClick(Sender: TObject);
// SrcNotebook events // SrcNotebook events
function OnSrcNotebookAddWatchesAtCursor(Sender: TObject): boolean; function OnSrcNotebookAddWatchesAtCursor(Sender: TObject): boolean;
@ -1137,18 +1136,6 @@ begin
ResetDebugger; ResetDebugger;
end; end;
procedure TDebugManager.mnuDebuggerOptionsClick(Sender: TObject);
var
DebuggerOptionsForm: TDebuggerOptionsForm;
begin
DebuggerOptionsForm := TDebuggerOptionsForm.Create(nil);
if DebuggerOptionsForm.ShowModal=mrOk then begin
// save to disk
EnvironmentOptions.Save(false);
end;
DebuggerOptionsForm.Free;
end;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
// ScrNoteBook events // ScrNoteBook events
@ -1583,8 +1570,6 @@ begin
itmRunMenuEvaluate.Tag := Ord(ddtEvaluate); itmRunMenuEvaluate.Tag := Ord(ddtEvaluate);
// itmRunMenuAddWatch.OnClick := @; // itmRunMenuAddWatch.OnClick := @;
// itmRunMenuAddBpSource.OnClick := @; // itmRunMenuAddBpSource.OnClick := @;
itmEnvDebuggerOptions.OnClick := @mnuDebuggerOptionsClick;
end; end;
end; end;

View File

@ -306,7 +306,7 @@ type
itmEnvGeneralOptions: TIDEMenuCommand; itmEnvGeneralOptions: TIDEMenuCommand;
//itmEnvEditorOptions: TIDEMenuCommand; //itmEnvEditorOptions: TIDEMenuCommand;
itmEnvCodeTemplates: TIDEMenuCommand; itmEnvCodeTemplates: TIDEMenuCommand;
itmEnvDebuggerOptions: TIDEMenuCommand; //itmEnvDebuggerOptions: TIDEMenuCommand;
//itmEnvCodeToolsOptions: TIDEMenuCommand; //itmEnvCodeToolsOptions: TIDEMenuCommand;
itmEnvCodeToolsDefinesEditor: TIDEMenuCommand; itmEnvCodeToolsDefinesEditor: TIDEMenuCommand;
//itmIDECacheSection: TIDEMenuSection; //itmIDECacheSection: TIDEMenuSection;

View File

@ -738,8 +738,6 @@ begin
lisMenuGeneralOptions,'menu_environment_options'); lisMenuGeneralOptions,'menu_environment_options');
CreateMenuItem(ParentMI,itmEnvCodeTemplates,'itmEnvCodeTemplates', CreateMenuItem(ParentMI,itmEnvCodeTemplates,'itmEnvCodeTemplates',
lisMenuEditCodeTemplates,''); lisMenuEditCodeTemplates,'');
CreateMenuItem(ParentMI,itmEnvDebuggerOptions,'itmEnvDebuggerOptions',
lisMenDebuggerOptions,'debugger_options');
CreateMenuItem(ParentMI,itmEnvCodeToolsDefinesEditor, CreateMenuItem(ParentMI,itmEnvCodeToolsDefinesEditor,
'itmEnvCodeToolsDefinesEditor',lisMenuCodeToolsDefinesEditor, 'itmEnvCodeToolsDefinesEditor',lisMenuCodeToolsDefinesEditor,
'menu_codetoolsdefineseditor'); 'menu_codetoolsdefineseditor');