天天看点

动态加载TdxBarPopupMenu的菜单项

最近查找一下网很少有这方面的资料,所以自己就学习一下,顺便记录下来。效果如下图所示:

代码如下所示:

unit Unit1;

interface

uses

  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

  Dialogs, StdCtrls, dxBar;

type

  TForm1 = class(TForm)

    dxBarManager1: TdxBarManager;

    dxBarPopupMenu1: TdxBarPopupMenu;

    Button1: TButton;

    dxbrgrp1: TdxBarGroup;

    dxbrbtn1: TdxBarButton;

    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;

      Shift: TShiftState; X, Y: Integer);

    procedure Button1Click(Sender: TObject);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

var

  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;

  Shift: TShiftState; X, Y: Integer);

begin

  if Button = mbright  then

    dxBarPopupMenu1.PopupFromCursorPos;

end;

procedure TForm1.Button1Click(Sender: TObject);

var

  _button0:TdxBarButton;

  _button1 :TdxBarButton;

  _button2 :TdxBarButton;

  _SubItem :TdxBarSubItem;

  _itemlink :TdxBarItemLink;

begin

   _button0 := TdxBarButton.Create(dxBarPopupMenu1);

   _button1 := TdxBarButton.Create(dxBarPopupMenu1);

   _button2 := TdxBarButton.Create(dxBarPopupMenu1);

   _button0.Caption := 'SetSystem';

   _button0.Visible := ivAlways;

   _button1.Caption := 'SetPicture';

   _button1.Visible := ivAlways;

   _button2.Caption := 'SetCaption';

   _button2.Visible := ivAlways;

   {//增加一个按钮,有两种方法

     //方法1

   _itemlink := dxBarPopupMenu1.ItemLinks.Add;

   _itemlink.Item := _button0;

   }

   //方法2

   dxBarPopupMenu1.ItemLinks.Add.Item := _button0;

   //增加一个按钮 end  

  //增加子菜单,也有两种方法

   _SubItem := TdxBarSubItem.Create(dxBarPopupMenu1);

   {

   _itemlink := dxBarPopupMenu1.ItemLinks.Add;

    _itemlink.Item := _SubItem;

    }

  dxBarPopupMenu1.ItemLinks.Add.Item := _SubItem;

  //增加子菜单 end

  _SubItem.Caption := 'subItems';

  _SubItem.ItemLinks.Add.Item := _button1;

  _SubItem.ItemLinks.Add.Item := _button2;

end;

end.

继续阅读