1
unit BreakPropertyDlgGroups;
8
Classes, Forms, Controls, ButtonPanel, StdCtrls, CheckLst, Debugger, LazarusIDEStrConsts;
12
TBreakPointGroupAction = (bgaEnable, bgaDisable);
14
{ TBreakPointGroupDlg }
16
TBreakPointGroupDlg = class(TForm)
17
ButtonPanel1: TButtonPanel;
18
CheckListBox1: TCheckListBox;
21
FBrkPointPoint: TIDEBreakPoint;
22
FGroupList: TStringList;
23
FAvailableGroups: TIDEBreakPointGroups;
25
{ public declarations }
26
constructor Create(ABrkPointPoint: TIDEBreakPoint;
28
AAvailableGroups: TIDEBreakPointGroups;
29
AAction: TBreakPointGroupAction
31
destructor Destroy; override;
32
function ShowModal: Integer; override;
36
function ExecuteBreakPointGroupDlg(ABrkPointPoint: TIDEBreakPoint;
37
var AGroupList: String;
38
AAvailableGroups: TIDEBreakPointGroups;
39
AAction: TBreakPointGroupAction
45
function ExecuteBreakPointGroupDlg(ABrkPointPoint: TIDEBreakPoint;
46
var AGroupList: String; AAvailableGroups: TIDEBreakPointGroups;
47
AAction: TBreakPointGroupAction): TModalResult;
49
dlg: TBreakPointGroupDlg;
52
dlg := TBreakPointGroupDlg.Create(ABrkPointPoint, AGroupList, AAvailableGroups, AAction);
54
Result := dlg.ShowModal;
56
AGroupList := dlg. FGroupList.DelimitedText;
62
{ TBreakPointGroupDlg }
64
constructor TBreakPointGroupDlg.Create(ABrkPointPoint: TIDEBreakPoint;
65
AGroupList: String; AAvailableGroups: TIDEBreakPointGroups;
66
AAction: TBreakPointGroupAction);
68
g: TIDEBreakPointGroup;
71
inherited Create(nil);
72
FBrkPointPoint := ABrkPointPoint;
73
FAvailableGroups := AAvailableGroups;
74
FGroupList := TStringList.Create;
75
FGroupList.Delimiter := ';';
76
FGroupList.DelimitedText := AGroupList;
81
Caption := dbgBreakGroupDlgCaptionEnable;
82
Label1.Caption := dbgBreakGroupDlgHeaderEnable;
86
Caption := dbgBreakGroupDlgCaptionDisable;
87
Label1.Caption := dbgBreakGroupDlgHeaderDisable;
91
for i := 0 to FAvailableGroups.Count - 1 do begin
92
g := FAvailableGroups[i];
93
j := CheckListBox1.Items.Add(g.Name);
94
CheckListBox1.Checked[j] := FGroupList.IndexOf(g.Name) >= 0;
98
destructor TBreakPointGroupDlg.Destroy;
104
function TBreakPointGroupDlg.ShowModal: Integer;
107
g: TIDEBreakPointGroup;
109
Result := inherited ShowModal;
112
if Result = mrOK then begin
113
for i := 0 to FAvailableGroups.Count - 1 do begin
114
g := FAvailableGroups[i];
115
j := CheckListBox1.Items.IndexOf(g.Name);
116
if j < 0 then continue;
118
if CheckListBox1.Checked[j] then begin
119
FGroupList.Add(g.Name);