mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-13 12:09:21 +02:00
editor toolbar: patch from Graeme (#8787)
+ It's now able to save and restore the users selection on the toolbar. + toolbar dividers can now be added + Items can be reordered on the toolbar. git-svn-id: trunk@11031 -
This commit is contained in:
parent
b5c463103f
commit
6291169acd
@ -19,7 +19,7 @@
|
|||||||
"/>
|
"/>
|
||||||
<License Value="GPL
|
<License Value="GPL
|
||||||
"/>
|
"/>
|
||||||
<Version Minor="3"/>
|
<Version Minor="4"/>
|
||||||
<Files Count="3">
|
<Files Count="3">
|
||||||
<Item1>
|
<Item1>
|
||||||
<Filename Value="jumpto_impl.pas"/>
|
<Filename Value="jumpto_impl.pas"/>
|
||||||
@ -38,14 +38,14 @@
|
|||||||
<Type Value="DesignTime"/>
|
<Type Value="DesignTime"/>
|
||||||
<RequiredPkgs Count="4">
|
<RequiredPkgs Count="4">
|
||||||
<Item1>
|
<Item1>
|
||||||
<PackageName Value="IDEIntf"/>
|
<PackageName Value="LCL"/>
|
||||||
</Item1>
|
</Item1>
|
||||||
<Item2>
|
<Item2>
|
||||||
<PackageName Value="FCL"/>
|
<PackageName Value="IDEIntf"/>
|
||||||
<MinVersion Major="1" Valid="True"/>
|
|
||||||
</Item2>
|
</Item2>
|
||||||
<Item3>
|
<Item3>
|
||||||
<PackageName Value="LCL"/>
|
<PackageName Value="FCL"/>
|
||||||
|
<MinVersion Major="1" Valid="True"/>
|
||||||
</Item3>
|
</Item3>
|
||||||
<Item4>
|
<Item4>
|
||||||
<PackageName Value="CodeTools"/>
|
<PackageName Value="CodeTools"/>
|
||||||
|
@ -34,6 +34,12 @@ uses
|
|||||||
,MenuIntf
|
,MenuIntf
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
const
|
||||||
|
cSettingsFile = 'editortoolbar.xml';
|
||||||
|
cDivider = '---------------';
|
||||||
|
|
||||||
|
|
||||||
type
|
type
|
||||||
|
|
||||||
TEditorToolbar = class(TObject)
|
TEditorToolbar = class(TObject)
|
||||||
@ -46,11 +52,13 @@ type
|
|||||||
function CreateJumpItem(AJumpType: TJumpType; O: TComponent): TMenuItem;
|
function CreateJumpItem(AJumpType: TJumpType; O: TComponent): TMenuItem;
|
||||||
procedure DoConfigureToolbar(Sender: TObject);
|
procedure DoConfigureToolbar(Sender: TObject);
|
||||||
protected
|
protected
|
||||||
|
procedure AddButton(AMenuItem: TIDEMenuItem);
|
||||||
public
|
public
|
||||||
constructor Create;
|
constructor Create;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure InitEditorToolBar;
|
procedure InitEditorToolBar;
|
||||||
procedure AddButton(AMenuItem: TIDEMenuItem);
|
procedure AddCustomItems;
|
||||||
|
procedure AddDivider;
|
||||||
procedure AddStaticItems;
|
procedure AddStaticItems;
|
||||||
procedure ClearToolbar;
|
procedure ClearToolbar;
|
||||||
end;
|
end;
|
||||||
@ -70,6 +78,8 @@ uses
|
|||||||
,SysUtils
|
,SysUtils
|
||||||
,LResources
|
,LResources
|
||||||
,EdtTbConfigFrm
|
,EdtTbConfigFrm
|
||||||
|
,LazConfigStorage
|
||||||
|
,BaseIDEIntf
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@ -121,7 +131,6 @@ begin
|
|||||||
inherited Destroy;
|
inherited Destroy;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
procedure TEditorToolbar.InitEditorToolBar;
|
procedure TEditorToolbar.InitEditorToolBar;
|
||||||
begin
|
begin
|
||||||
if not Assigned(W) then
|
if not Assigned(W) then
|
||||||
@ -131,6 +140,8 @@ begin
|
|||||||
TB := nil;
|
TB := nil;
|
||||||
CreateEditorToolBar(W, TB, BI);
|
CreateEditorToolBar(W, TB, BI);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
AddCustomItems;
|
||||||
AddStaticItems;
|
AddStaticItems;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -139,7 +150,7 @@ var
|
|||||||
B: TToolButton;
|
B: TToolButton;
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
B := TToolbutton.Create(W);
|
B := TToolButton.Create(TB);
|
||||||
B.Parent := TB;
|
B.Parent := TB;
|
||||||
B.Caption := AMenuItem.Caption;
|
B.Caption := AMenuItem.Caption;
|
||||||
B.Hint := AMenuItem.Caption; // or should we use AMenuItem.Hint?
|
B.Hint := AMenuItem.Caption; // or should we use AMenuItem.Hint?
|
||||||
@ -151,10 +162,48 @@ begin
|
|||||||
end
|
end
|
||||||
else
|
else
|
||||||
B.ImageIndex := BI.AddLazarusResource('execute16');
|
B.ImageIndex := BI.AddLazarusResource('execute16');
|
||||||
|
|
||||||
B.Style := tbsButton;
|
B.Style := tbsButton;
|
||||||
B.OnClick := AMenuItem.OnClick;
|
B.OnClick := AMenuItem.OnClick;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TEditorToolbar.AddCustomItems;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
c: integer;
|
||||||
|
cfg: TConfigStorage;
|
||||||
|
value: string;
|
||||||
|
mi: TIDEMenuItem;
|
||||||
|
begin
|
||||||
|
cfg := GetIDEConfigStorage(cSettingsFile, True);
|
||||||
|
try
|
||||||
|
c := cfg.GetValue('Count', 0);
|
||||||
|
for i := c - 1 downto 0 do
|
||||||
|
begin
|
||||||
|
value := cfg.GetValue('Button' + Format('%2.2d', [i+1]) + '/Value', '');
|
||||||
|
if value = cDivider then
|
||||||
|
AddDivider
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
mi := IDEMenuRoots.FindByPath(value, True);
|
||||||
|
if Assigned(mi) then
|
||||||
|
AddButton(mi);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
cfg.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TEditorToolbar.AddDivider;
|
||||||
|
var
|
||||||
|
B: TToolButton;
|
||||||
|
begin
|
||||||
|
B := TToolbutton.Create(TB);
|
||||||
|
B.Parent := TB;
|
||||||
|
B.Style := tbsDivider;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TEditorToolbar.AddStaticItems;
|
procedure TEditorToolbar.AddStaticItems;
|
||||||
var
|
var
|
||||||
B: TToolButton;
|
B: TToolButton;
|
||||||
@ -163,16 +212,11 @@ var
|
|||||||
begin
|
begin
|
||||||
TB.BeginUpdate;
|
TB.BeginUpdate;
|
||||||
try
|
try
|
||||||
if TB.ButtonList.Count <> 0 then
|
if TB.ButtonCount <> 0 then
|
||||||
begin
|
AddDivider;
|
||||||
// divider button
|
|
||||||
B := TToolbutton.Create(W);
|
|
||||||
B.Parent := TB;
|
|
||||||
B.Style := tbsDivider;
|
|
||||||
end;
|
|
||||||
|
|
||||||
// JumpTo Button
|
// JumpTo Button
|
||||||
B := TToolbutton.Create(W);
|
B := TToolbutton.Create(TB);
|
||||||
B.Parent := TB;
|
B.Parent := TB;
|
||||||
B.Caption := 'Jump To';
|
B.Caption := 'Jump To';
|
||||||
B.Hint := B.Caption;
|
B.Hint := B.Caption;
|
||||||
@ -186,13 +230,10 @@ begin
|
|||||||
for T := Low(TJumpType) to High(TJumpType) do
|
for T := Low(TJumpType) to High(TJumpType) do
|
||||||
PM.Items.Add(CreateJumpItem(T,W));
|
PM.Items.Add(CreateJumpItem(T,W));
|
||||||
|
|
||||||
// divider button
|
AddDivider;
|
||||||
B := TToolbutton.Create(W);
|
|
||||||
B.Parent := TB;
|
|
||||||
B.Style := tbsDivider;
|
|
||||||
|
|
||||||
// Config Button
|
// Config Button
|
||||||
B := TToolbutton.Create(W);
|
B := TToolbutton.Create(TB);
|
||||||
B.Parent := TB;
|
B.Parent := TB;
|
||||||
B.Caption := 'Configure Toolbar';
|
B.Caption := 'Configure Toolbar';
|
||||||
B.Hint := B.Caption;
|
B.Hint := B.Caption;
|
||||||
@ -220,7 +261,7 @@ end;
|
|||||||
|
|
||||||
procedure Register;
|
procedure Register;
|
||||||
begin
|
begin
|
||||||
If (SourceEditorWindow <> nil) then
|
if (SourceEditorWindow <> nil) then
|
||||||
gEditorToolbar.InitEditorToolBar;
|
gEditorToolbar.InitEditorToolBar;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -95,6 +95,7 @@ object EdtTbConfigForm: TEdtTbConfigForm
|
|||||||
Constraints.MaxHeight = 25
|
Constraints.MaxHeight = 25
|
||||||
Constraints.MinHeight = 25
|
Constraints.MinHeight = 25
|
||||||
Constraints.MinWidth = 75
|
Constraints.MinWidth = 75
|
||||||
|
OnClick = btnAddDividerClick
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
end
|
end
|
||||||
object lbToolbar: TListBox
|
object lbToolbar: TListBox
|
||||||
@ -128,8 +129,8 @@ object EdtTbConfigForm: TEdtTbConfigForm
|
|||||||
Height = 26
|
Height = 26
|
||||||
Top = 157
|
Top = 157
|
||||||
Width = 22
|
Width = 22
|
||||||
Enabled = False
|
|
||||||
NumGlyphs = 0
|
NumGlyphs = 0
|
||||||
|
OnClick = btnMoveUpClick
|
||||||
TabOrder = 5
|
TabOrder = 5
|
||||||
end
|
end
|
||||||
object btnMoveDown: TBitBtn
|
object btnMoveDown: TBitBtn
|
||||||
@ -137,8 +138,8 @@ object EdtTbConfigForm: TEdtTbConfigForm
|
|||||||
Height = 26
|
Height = 26
|
||||||
Top = 182
|
Top = 182
|
||||||
Width = 22
|
Width = 22
|
||||||
Enabled = False
|
|
||||||
NumGlyphs = 0
|
NumGlyphs = 0
|
||||||
|
OnClick = btnMoveDownClick
|
||||||
TabOrder = 6
|
TabOrder = 6
|
||||||
end
|
end
|
||||||
object TV: TTreeView
|
object TV: TTreeView
|
||||||
|
@ -30,16 +30,17 @@ LazarusResources.Add('TEdtTbConfigForm','FORMDATA',[
|
|||||||
+'ht'#2#25#3'Top'#3#0#1#5'Width'#2's'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8
|
+'ht'#2#25#3'Top'#3#0#1#5'Width'#2's'#7'Anchors'#11#7'akRight'#8'akBottom'#0#8
|
||||||
+'AutoSize'#9#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#13'btnAddDivider'
|
+'AutoSize'#9#25'BorderSpacing.InnerBorder'#2#4#7'Caption'#6#13'btnAddDivider'
|
||||||
+#21'Constraints.MaxHeight'#2#25#21'Constraints.MinHeight'#2#25#20'Constraint'
|
+#21'Constraints.MaxHeight'#2#25#21'Constraints.MinHeight'#2#25#20'Constraint'
|
||||||
+'s.MinWidth'#2'K'#8'TabOrder'#2#1#0#0#8'TListBox'#9'lbToolbar'#4'Left'#3#200
|
+'s.MinWidth'#2'K'#7'OnClick'#7#18'btnAddDividerClick'#8'TabOrder'#2#1#0#0#8
|
||||||
+#1#6'Height'#3#225#0#3'Top'#2#28#5'Width'#3#183#0#8'TabOrder'#2#2#8'TopIndex'
|
+'TListBox'#9'lbToolbar'#4'Left'#3#200#1#6'Height'#3#225#0#3'Top'#2#28#5'Widt'
|
||||||
+#2#255#0#0#7'TBitBtn'#9'btnRemove'#4'Left'#3#176#1#6'Height'#2#26#3'Top'#2'J'
|
+'h'#3#183#0#8'TabOrder'#2#2#8'TopIndex'#2#255#0#0#7'TBitBtn'#9'btnRemove'#4
|
||||||
+#5'Width'#2#22#9'NumGlyphs'#2#0#7'OnClick'#7#14'btnRemoveClick'#8'TabOrder'#2
|
+'Left'#3#176#1#6'Height'#2#26#3'Top'#2'J'#5'Width'#2#22#9'NumGlyphs'#2#0#7'O'
|
||||||
+#3#0#0#7'TBitBtn'#6'btnAdd'#4'Left'#3#176#1#6'Height'#2#26#3'Top'#2'c'#5'Wid'
|
+'nClick'#7#14'btnRemoveClick'#8'TabOrder'#2#3#0#0#7'TBitBtn'#6'btnAdd'#4'Lef'
|
||||||
+'th'#2#22#9'NumGlyphs'#2#0#7'OnClick'#7#11'btnAddClick'#8'TabOrder'#2#4#0#0#7
|
+'t'#3#176#1#6'Height'#2#26#3'Top'#2'c'#5'Width'#2#22#9'NumGlyphs'#2#0#7'OnCl'
|
||||||
+'TBitBtn'#9'btnMoveUp'#4'Left'#3#176#1#6'Height'#2#26#3'Top'#3#157#0#5'Width'
|
+'ick'#7#11'btnAddClick'#8'TabOrder'#2#4#0#0#7'TBitBtn'#9'btnMoveUp'#4'Left'#3
|
||||||
+#2#22#7'Enabled'#8#9'NumGlyphs'#2#0#8'TabOrder'#2#5#0#0#7'TBitBtn'#11'btnMov'
|
+#176#1#6'Height'#2#26#3'Top'#3#157#0#5'Width'#2#22#9'NumGlyphs'#2#0#7'OnClic'
|
||||||
+'eDown'#4'Left'#3#176#1#6'Height'#2#26#3'Top'#3#182#0#5'Width'#2#22#7'Enable'
|
+'k'#7#14'btnMoveUpClick'#8'TabOrder'#2#5#0#0#7'TBitBtn'#11'btnMoveDown'#4'Le'
|
||||||
+'d'#8#9'NumGlyphs'#2#0#8'TabOrder'#2#6#0#0#9'TTreeView'#2'TV'#4'Left'#2#16#6
|
+'ft'#3#176#1#6'Height'#2#26#3'Top'#3#182#0#5'Width'#2#22#9'NumGlyphs'#2#0#7
|
||||||
+'Height'#3#253#0#3'Top'#2#28#5'Width'#3#136#1#17'DefaultItemHeight'#2#18#8'T'
|
+'OnClick'#7#16'btnMoveDownClick'#8'TabOrder'#2#6#0#0#9'TTreeView'#2'TV'#4'Le'
|
||||||
+'abOrder'#2#7#8'OnChange'#7#8'TVChange'#0#0#0
|
+'ft'#2#16#6'Height'#3#253#0#3'Top'#2#28#5'Width'#3#136#1#17'DefaultItemHeigh'
|
||||||
|
+'t'#2#18#8'TabOrder'#2#7#8'OnChange'#7#8'TVChange'#0#0#0
|
||||||
]);
|
]);
|
||||||
|
@ -44,11 +44,16 @@ type
|
|||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure TVChange(Sender: TObject; Node: TTreeNode);
|
procedure TVChange(Sender: TObject; Node: TTreeNode);
|
||||||
procedure btnAddClick(Sender: TObject);
|
procedure btnAddClick(Sender: TObject);
|
||||||
|
procedure btnAddDividerClick(Sender: TObject);
|
||||||
|
procedure btnMoveDownClick(Sender: TObject);
|
||||||
|
procedure btnMoveUpClick(Sender: TObject);
|
||||||
procedure btnOKClick(Sender: TObject);
|
procedure btnOKClick(Sender: TObject);
|
||||||
procedure btnRemoveClick(Sender: TObject);
|
procedure btnRemoveClick(Sender: TObject);
|
||||||
private
|
private
|
||||||
procedure SetupCaptions;
|
procedure SetupCaptions;
|
||||||
procedure LoadCategories;
|
procedure LoadCategories;
|
||||||
|
procedure LoadSettings;
|
||||||
|
procedure SaveSettings;
|
||||||
procedure AddMenuItem(ParentNode: TTreeNode; Item: TIDEMenuItem);
|
procedure AddMenuItem(ParentNode: TTreeNode; Item: TIDEMenuItem);
|
||||||
public
|
public
|
||||||
class function Execute: boolean;
|
class function Execute: boolean;
|
||||||
@ -59,6 +64,9 @@ implementation
|
|||||||
|
|
||||||
uses
|
uses
|
||||||
editortoolbar_impl
|
editortoolbar_impl
|
||||||
|
,LazConfigStorage
|
||||||
|
,BaseIDEIntf
|
||||||
|
,LazIDEIntf
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
@ -85,6 +93,7 @@ begin
|
|||||||
|
|
||||||
SetupCaptions;
|
SetupCaptions;
|
||||||
LoadCategories;
|
LoadCategories;
|
||||||
|
LoadSettings;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TEdtTbConfigForm.TVChange(Sender: TObject; Node: TTreeNode);
|
procedure TEdtTbConfigForm.TVChange(Sender: TObject; Node: TTreeNode);
|
||||||
@ -109,10 +118,39 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TEdtTbConfigForm.btnAddDividerClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
lbToolbar.Items.Add(cDivider);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TEdtTbConfigForm.btnMoveDownClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if lbToolbar.ItemIndex = -1 then
|
||||||
|
exit;
|
||||||
|
if lbToolbar.ItemIndex < lbToolbar.Items.Count - 1 then
|
||||||
|
begin
|
||||||
|
lbToolbar.Items.Exchange(lbToolbar.ItemIndex, lbToolbar.ItemIndex+1);
|
||||||
|
lbToolbar.ItemIndex := lbToolbar.ItemIndex+1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TEdtTbConfigForm.btnMoveUpClick(Sender: TObject);
|
||||||
|
begin
|
||||||
|
if lbToolbar.ItemIndex = -1 then
|
||||||
|
exit;
|
||||||
|
if lbToolbar.ItemIndex > 0 then
|
||||||
|
begin
|
||||||
|
lbToolbar.Items.Exchange(lbToolbar.ItemIndex, lbToolbar.ItemIndex-1);
|
||||||
|
lbToolbar.ItemIndex := lbToolbar.ItemIndex-1;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TEdtTbConfigForm.btnOKClick(Sender: TObject);
|
procedure TEdtTbConfigForm.btnOKClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
i: integer;
|
i: integer;
|
||||||
begin
|
begin
|
||||||
|
SaveSettings;
|
||||||
|
|
||||||
if lbToolbar.Items.Count = 0 then
|
if lbToolbar.Items.Count = 0 then
|
||||||
begin
|
begin
|
||||||
{ resets the toolbar to only contain static (default) items }
|
{ resets the toolbar to only contain static (default) items }
|
||||||
@ -122,11 +160,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
gEditorToolbar.ClearToolbar;
|
gEditorToolbar.ClearToolbar;
|
||||||
for i := 0 to lbToolbar.Items.Count-1 do
|
gEditorToolbar.AddCustomItems;
|
||||||
begin
|
|
||||||
gEditorToolbar.AddButton(TIDEMenuItem(lbToolBar.Items.Objects[i]));
|
|
||||||
end;
|
|
||||||
|
|
||||||
gEditorToolbar.AddStaticItems;
|
gEditorToolbar.AddStaticItems;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -160,6 +194,56 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TEdtTbConfigForm.LoadSettings;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
c: integer;
|
||||||
|
cfg: TConfigStorage;
|
||||||
|
value: string;
|
||||||
|
mi: TIDEMenuItem;
|
||||||
|
begin
|
||||||
|
cfg := GetIDEConfigStorage(cSettingsFile, True);
|
||||||
|
try
|
||||||
|
c := cfg.GetValue('Count', 0);
|
||||||
|
for i := 0 to c - 1 do
|
||||||
|
begin
|
||||||
|
value := cfg.GetValue('Button' + Format('%2.2d', [i+1]) + '/Value', '');
|
||||||
|
if value = cDivider then
|
||||||
|
begin
|
||||||
|
lbToolbar.Items.Add(value);
|
||||||
|
Continue;
|
||||||
|
end;
|
||||||
|
|
||||||
|
mi := IDEMenuRoots.FindByPath(value, true);
|
||||||
|
if Assigned(mi) then
|
||||||
|
lbToolbar.Items.AddObject(mi.Caption, TObject(mi));
|
||||||
|
end;
|
||||||
|
finally
|
||||||
|
cfg.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TEdtTbConfigForm.SaveSettings;
|
||||||
|
var
|
||||||
|
i: integer;
|
||||||
|
cfg: TConfigStorage;
|
||||||
|
begin
|
||||||
|
cfg := GetIDEConfigStorage(cSettingsFile, False);
|
||||||
|
try
|
||||||
|
cfg.SetValue('Count', lbToolbar.Items.Count);
|
||||||
|
for i := 0 to lbToolbar.Items.Count - 1 do
|
||||||
|
begin
|
||||||
|
if lbToolbar.Items[i] = cDivider then
|
||||||
|
cfg.SetDeleteValue('Button' + Format('%2.2d', [i+1]) + '/Value', cDivider, '')
|
||||||
|
else
|
||||||
|
cfg.SetDeleteValue('Button' + Format('%2.2d', [i+1]) + '/Value', TIDEMenuItem(lbToolbar.Items.Objects[i]).GetPath, '');
|
||||||
|
end;
|
||||||
|
cfg.WriteToDisk;
|
||||||
|
finally
|
||||||
|
cfg.Free;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TEdtTbConfigForm.AddMenuItem(ParentNode: TTreeNode;
|
procedure TEdtTbConfigForm.AddMenuItem(ParentNode: TTreeNode;
|
||||||
Item: TIDEMenuItem);
|
Item: TIDEMenuItem);
|
||||||
var
|
var
|
||||||
|
Loading…
Reference in New Issue
Block a user