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
  • 1377

dxBarManager

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

dxBarManager的使用

1.关于dxBarmanager的使用。 首先点击dxBarManager右键选择add MainMenu ,不要选择add toolbar。然后是添加 add subitem 或者是 add bu...
  • shipeng19901010
  • shipeng19901010
  • 2016年08月27日 10:41
  • 105

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

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

编写一个学生信息系统的菜单程序,在菜单其中的增加记录的菜单选项中实现对一条学生记录的录入,记录中需要有学号、姓名、性别,年龄籍贯等字段,要求用最合适的控件录入。

部分代码:(QueryFrame) package com.ybn.student.ui; import java.awt.*; import java.awt.event.*; import jav...
  • dlh_sycamore
  • dlh_sycamore
  • 2017年04月03日 14:50
  • 762

如何添加右键菜单命令

当遇到windows识别不了的文件时,我希望能直接点右键中的“用记事本打开”查看文件,请问如何实现?? 这个很简单的,跟着我做,  按开始-》运行-》输入regedit 打开注册表,在左面...
  • T_27080901
  • T_27080901
  • 2015年02月03日 22:34
  • 789

windows技巧之添加右键菜单

我们通常的windows右键菜单里面的项目很少,我们后面安装的程序,例如:QQ,谷歌 都没添加进入右键菜单。 当然,微软考虑的相当周到,能允许我们自定义右键菜单:看看笔者机器上的吧:     是不...
  • HK_5788
  • HK_5788
  • 2015年05月09日 20:26
  • 7256

[转] QT 在TreeView中增加右键菜单功能

转自: http://blog.csdn.net/liukang325/article/details/22734735
  • hailmy
  • hailmy
  • 2014年06月03日 09:39
  • 1005

c# WPF 代码添加右键菜单

WPF 代码添加右键菜单
  • ooc9442
  • ooc9442
  • 2017年11月17日 13:32
  • 84

OFFICE增加右键菜单

1.添加右键“新建 Microsoft Office Word 文档”       新建一个文本文档(文件名任意),输入以下内容并保存,修改后缀名为.reg,双击导入注册表即可成功。点右键试试,如果...
  • u012508173
  • u012508173
  • 2017年01月10日 16:55
  • 396
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:dxbarmanager菜单增加项目
举报原因:
原因补充:

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