在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
一、dxBarManager中一些非常重要的概念: TCategorys:为了方便对dxBarManager中的项目进行归类而设计的一个属性,当然,只使用默认的名字为Default的Category也没有关系,只是如果在设计界面上只用一个而不用其他的Category会显得非常乱。 TdxBarSubItem:可以挂载其他TdxBarItem项目的一个容器,相当于【主菜单】。 TdxBarButton:具体的项目栏,相当一个【菜单项】。 TdxBarSepartor:分隔线。 TdxBarItemLink:项目链接关系,比如,想要把一个dxBarSubItem对象放置在一个容器对象上(如想放置在dxBar上),其步骤就是:先在dxBar上创建一个dxBarItemLink,然后让这个新建的dxBarItemLink.Item指向这个dxBarSubItem。同样的道理,如果想要把一个dxBarButton对象挂载在一个dxBarSubItem对象容器下,也是先创建一个dxBarItemLink,然后让这个新建的dxBarItemLink.Item指向该dxBarButton。 二、创建一个TdxBarSubItem,并在它下面挂载5个TdxBarButton
procedure TMainForm.btn_AddClick(Sender: TObject); var aItemLink: TdxBarItemLink; aSubItem: TdxBarSubItem; aBarButton: TdxBarButton; aSeparator: TdxBarSeparator;//分隔线 i: Integer; begin //创建一个dxSubItem,相当于创建一个主菜单项 aSubItem := TdxBarSubItem.Create(Self); i := aSubItem.BarManager.Categories.Count+1; aSubItem.Caption := Format('系统菜单%d',[i]); aItemLink := aSubItem.BarManager.Bars[0].ItemLinks.Add; aItemLink.Item := aSubItem; //======以下这两行代码,纯属为了把每个dxSubItem归属到一个不同的类别下====// //==同时也是为了方便在dxBarManager中统计出到底创建了多少个“主”菜单 //未清除Category之前,dxBarManager在创建时默认会创建一个名为Default的Category aSubItem.BarManager.Categories.Add(Format('Categories_%-2d',[i])); aSubItem.Category := i; //创建一个dxBarButton,相当于创建一个明细菜单项 for i := 1 to 5 do begin aBarButton := TdxBarButton.Create(Self);//内存资源由Self负责管理 aBarButton.Caption := Format('菜单项%d',[i]); aBarButton.OnClick:= mi_ItemOnClick; //动态添加Button的Onclick单击事件 aItemLink := aSubItem.ItemLinks.Add; aItemLink.Item := aBarButton; if (i mod 3 = 0) and (i<5) then //放上一个分隔线 begin aSeparator := TdxBarSeparator.Create(Self); aSeparator.Caption := '分隔线'; aSeparator.ShowCaption := False; aItemLink := aSubItem.ItemLinks.Add; aItemLink.Item := aSeparator; end; end; end; 三、显示dxBarManager中的内容,看看它到底创建一些什么东西。
procedure TMainForm.btn_DisplayClick(Sender: TObject); var I: Integer; begin //看看dxBarManager1中到底有些什么东西 Memo1.Clear; Memo1.Lines.Add(Format('dxBarManager中Category总数量=%d,Category Name分别为:',[dxbarManager1.Categories.Count])); Memo1.Lines.AddStrings(dxBarManager1.Categories); Memo1.Lines.Add('================================='); for I := 0 to dxBarManager1.ItemCount-1 do begin Memo1.Lines.Add(Format('%.3d:Caption=%-10s,Category=%2d,%-20s', [i+1,dxBarManager1.Items[i].Caption,dxbarManager1.Items[i].Category,dxBarManager1.Items[i].ClassName]) ); end; end; 四、如何清除dxBarManager中的内容
procedure TMainForm.btn_ReleaseClick(Sender: TObject); var I: Integer; begin //dxBarManager1Bar1.ItemLinks.Clear; dxBarManager1.Categories.Clear; for i:=dxBarManager1.ItemCount downto 0 do //必须使用downto dxBarManager1.Items[i].Free; end; 五、看看运行效果
六、Demo下载 版权声明:本文为博主原创文章,未经博主允许不得转载。
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论