dxbarmanager菜单增加项目

原创 2011年01月24日 10:11:00

---无代码下载
{

经常上盒子查找需要的资料,今天给大家发一点有用的代码

相信好多人都用过dxbarmanager的菜单,但要动态增加项目可能会感觉不知所然!

以下代码在D7测试通过

bigwell

}
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, dxsbar, ImgList, dxBar;
type
  TForm1 = class(TForm)
    SideBar: TdxSideBar;
    ImageList1: TImageList;
    BarManager: TdxBarManager;
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { Private declarations }
    //side bar click proc
    procedure OnBarItemClick(Sender: TObject;Item: TdxSideBarItem);
    //menu item click proc
    procedure OnMenuItemClick(Sender: TObject);
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}


procedure TForm1.FormCreate(Sender: TObject);
var
i,c:integer;
g:TdxSideGroup;
it:TdxSideBarItem;

  ACategoryName: string;
  ACategory: Integer;
  AItemLinks: TdxBarItemLinks;

    AItem, AChildItem: TdxBarItem;
    AItemLink: TdxBarItemLink;

begin
  //创建MainMenu
  with BarManager.Bars.Add do
  begin
    Caption := 'Main Menu';
    DockingStyle := dsTop;
    IsMainMenu := True;
    Visible := True;

  end;
  //获取Mainmenubar.itemlins
  AItemLinks := BarManager.MainMenuBar.ItemLinks;
  ACategoryName := 'Menus';
  BarManager.MainMenuBar.LockUpdate := True;
  //Get Category index
  with BarManager.Categories do
  begin
    if IndexOf(ACategoryName) < 0 then Add(ACategoryName);
    ACategory := IndexOf(ACategoryName);
  end;

 

  for i:=1 to 4 do
   with SideBar do
   begin
      //创建组
      g:=Groups.Add;
      with g do
      begin
        Index:=i-1;
        Caption:=Format('Group%d',[i]);
        IconType := dxsgSmallIcon;
      end;
      //创建主菜单单项目
      AItem := TdxBarSubItem.Create(Form1);
      with AItem do
      begin
        Category := ACategory;
        Caption := g.Caption;
      end;
      //添加到主菜单
      AItemLink:=AItemLinks.Add;
      AItemLink.Item:=AItem;

      //创建组的子项目
      for c:=1 to 5 do
      begin
        it:=g.Items.Add;
        with it do
        begin
          Index:=c-1;
          Caption:=Format('Group%d - Item %d',[i,c]);
          SmallImage:=0;
          //comm item click proc
          OnItemClick:=OnBarItemClick;
          //或使用action
          //Action:=act_XXX;

        end;
        //创建子菜单
        AChildItem:=TdxBarButton.Create(form1);
        with AChildItem do
        begin
          caption:=it.Caption;
          Visible:=ivAlways;
          OnClick:=OnMenuItemClick;
          ImageIndex:=0;
          //或使用action
          //Action:=act_XXX;
        end;
        //添加子菜单到主菜单
        AItemLink := TdxBarSubItem(AItem).ItemLinks.Add;
        AItemLink.Item := AChildItem;
      end;
   end;
    with BarManager.Categories do
      Move(ACategory, Count - 1);
   BarManager.MainMenuBar.LockUpdate := False;

end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  SideBar.Groups.Clear;
  BarManager.MainMenuBar.ItemLinks.Clear;
end;

procedure TForm1.OnBarItemClick(Sender: TObject; Item: TdxSideBarItem);
begin
  showmessage(item.Caption);
end;

procedure TForm1.OnMenuItemClick(Sender: TObject);
begin
    showmessage((sender as TdxBarButton).Caption);
end;

end.
 

相关文章推荐

实例讲解如何在Delphi中动态创建dxBarManager内容

一、概念:    Category:为了方便对dxBarManager中的项目进行归类而设计的一个属性,当然,只使用默认的名字为Default的Category也没有关系,只是如果在设计界面上只用一个...
  • xieyunc
  • xieyunc
  • 2015年09月16日 01:42
  • 1237

dxBarManager

ToolBars - IsMainMenu :是否主菜单dxBarLargerButton - AutoGrayScare :自动灰白按钮右键 - Begin a Group :分组按钮按下状态 :B...
  • jing12
  • jing12
  • 2010年12月26日 14:54
  • 996

项目功能菜单

  • 2008年03月20日 10:51
  • 14KB
  • 下载

【SSH网上商城项目实战04】EasyUI菜单的实现

上一节我们使用EasyUI搭建了后台页面的框架,这一节我们主要使用EasyUI技术简单实现后台菜单,先将简单功能做出来,后期再继续丰富。 1. 实现左侧菜单         首先看一下效果图:   ...
  • eson_15
  • eson_15
  • 2016年05月07日 16:56
  • 9553

【ssm个人博客项目实战03】左侧导航菜单功能实现

先说一下具体的功能就是当我们点击左侧菜单选项时,右侧主界面会显示对应的内容。也就是说每当我们点击左侧导航菜单就等于打开了一个新的页面只不过它是选项卡的形式显示在center中。打开easyUI API...

限定系统右键菜单项目

  • 2017年07月10日 17:27
  • 5KB
  • 下载

混合菜单项目

  • 2005年11月15日 13:50
  • 47KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dxbarmanager菜单增加项目
举报原因:
原因补充:

(最多只允许输入30个字)