天天看點

動态加載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.

繼續閱讀