动态生成Ribbon Bar上的按钮和下拉菜单

标签:
it |
分类: Delphi相关 |
先来看这么一个效果
这是在DevExpress Bar组件下的Ribbon控件,对于直接的可视设计,要做出这样的效果当然是很容易的。
但是如果需要动态的生成这样的按钮和菜单,却是需要费一定的功夫。
由于Ribbon组件上的按钮,实际上由BarManager提供,而Ribbon组件本身,只是一个容器
因此,无法直接将按钮和菜单添加到Ribbon上,而是必须从BarManager中转。
代码如下:
01 procedure TPlugins.GenerateMenu;
02 var
03 il : TdxBarItemLink;
04 btn : TdxBarLargeButton;
05 bUrl: TPluginBtn;
06 i,j: Integer;
07 begin
08 SetLength(pmPlugCategory, Count); // pmPlugCategory的声明为pmPlugCategory: array of
TdxRibbonPopupMenu;
09 for i := 0 to Count - 1 do
10 begin
11 btn :=
TdxBarLargeButton(FormMain.BarManager.AddItem(TdxBarLargeButton));
12 btn.Caption
:= Plugins[i].Category + #13#10;
// 此处必须换行,否则按钮文字会被拆分
13
btn.buttonStyle := bsDropDown;
14 il :=
FormMain.barPluginList.ItemLinks.Add;
15 il.Item :=
btn;
16
pmPlugCategory[i] := TdxRibbonPopupMenu.Create(FormMain);
17
btn.DropDownMenu := pmPlugCategory[i];
18 for j :=
0 to Plugins[i].Count
- 1 do
19 begin
20
bUrl := TPluginBtn(FormMain.BarManager.AddButton);
21
bUrl.HLibPath := Plugins[i].Detail[j].Path;
22
bUrl.OnClick := FormMain.PluginClick;
23
il := pmPlugCategory[i].ItemLinks.Add;
24
il.Item := bUrl;
25 end;
26 end;
27 end;
http://hiphotos.baidu.com/rarnu/pic/item/4d97af18ef74fe2634fa4157.jpgBar上的按钮和下拉菜单" TITLE="动态生成Ribbon Bar上的按钮和下拉菜单" />
这是在DevExpress Bar组件下的Ribbon控件,对于直接的可视设计,要做出这样的效果当然是很容易的。
但是如果需要动态的生成这样的按钮和菜单,却是需要费一定的功夫。
由于Ribbon组件上的按钮,实际上由BarManager提供,而Ribbon组件本身,只是一个容器
因此,无法直接将按钮和菜单添加到Ribbon上,而是必须从BarManager中转。
代码如下:
01 procedure TPlugins.GenerateMenu;
02 var
03 il : TdxBarItemLink;
04 btn : TdxBarLargeButton;
05 bUrl: TPluginBtn;
06 i,j: Integer;
07 begin
08 SetLength(pmPlugCategory, Count);
09 for i := 0 to Count - 1 do
10 begin
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 end;
27 end;
前一篇:财务共享服务中心建设中的重难点
后一篇:rzgroupbar如何动态保存