Delphi动态添加菜单

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls;

type
TMainForm = class(TForm)
MainMenu1: TMainMenu;
Button1: TButton;
N0000000001: TMenuItem;
RichEdit1: TRichEdit;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N0000000001Click(Sender: TObject);
private
procedure MyClick(Sender: TObject);
{ Private declarations }
public
{ Public declarations }
end;

var
MainForm: TMainForm;
subItemName:String;

implementation

{$R *.dfm}

procedure TMainForm.FormCreate(Sender: TObject);
var addSubItem:TMenuItem;
i:Integer;
N:Integer;
SubMenuItemSource:String;
begin
N:=5;
SubMenuItemSource:='动态-';
for i:=0 to N do //N等于要添加的动态菜单数目,需事先定义为数值型变量,并赋值
begin
addSubItem:= TMenuItem.Create(Self);
addSubItem.Name := 'A'+IntToStr(i);
addSubItem.Caption := SubMenuItemSource+IntToStr(i);// 步骤1的SubMenuItemSource应先赋值
//FileOpenItem.Add(addSubItem);//在名称为FileOpenItem的菜单项下添加子菜单
addSubItem.OnClick:=self.MyClick;//步骤2的MyClick(),自定义菜单要响应的事件
self.MainMenu1.Items.Add(addSubItem);
end
end;

procedure TMainForm.MyClick(Sender: TObject); //动态菜单OnClick事件响应
begin
ShowMessage(TMenuItem(Sender).Caption); //显示选中的动态菜单标题,
end;

procedure TMainForm.Button1Click(Sender: TObject);
var addSubItem:TMenuItem;
i:Integer;
N:Integer;
SubMenuItemSource:String;
begin
self.MainMenu1.Items[0].OnClick:=nil; //变为无事件
N:=5;
SubMenuItemSource:='KKKKK-';
subItemName:=subItemName+'T';
for i:=0 to N do //N等于要添加的动态菜单数目,需事先定义为数值型变量,并赋值
begin
addSubItem:= TMenuItem.Create(Self);
addSubItem.Name := subItemName+IntToStr(i);
addSubItem.Caption := SubMenuItemSource+IntToStr(i);// 步骤1的SubMenuItemSource应先赋值
//FileOpenItem.Add(addSubItem);//在名称为FileOpenItem的菜单项下添加子菜单
addSubItem.OnClick:=self.MyClick;//步骤2的MyClick(),自定义菜单要响应的事件
self.MainMenu1.Items[0].Add(addSubItem);
end
end;


procedure TMainForm.N0000000001Click(Sender: TObject);
begin
showmessage('aaa');
end;

end.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值