procedure tform1.myclick(sender:Tobject); var Name,Caption:string; begin Name:=TItemmenu(Sender).Name; Caption:=TItemmenu(Sender).Catpion; end; procedure tform1.create(sender:Tobject); var Item:TMenuItem; begin Item:=TMemuItem.create; Item.Menu:=MainMenu1; Item.caption:='hello'; Item.onclick=MyClick; end; end;
var
Name,Caption:string;
begin
Name:=TItemmenu(Sender).Name;
Caption:=TItemmenu(Sender).Catpion;
end;
procedure tform1.create(sender:Tobject);
var
Item:TMenuItem;
begin
Item:=TMemuItem.create;
Item.Menu:=MainMenu1;
Item.caption:='hello';
Item.onclick=MyClick;
end;
end;
菜单的动态生成有几种情况的
1、自己意向创建菜单
2、根据菜单的数据源来创建菜单
这种情况有几种可能性,比如读取数据库取菜单信息、读取文件如XML文件取菜单信息
菜单生成过程的要点:
1、菜单的属性信息赋值,即取到数据时就给菜单的caption,Name赋值
2、对菜单的单击事件进行赋值这个需要定义一些东东。
1、根据你的需要进行配置菜单的单击事件
2、菜单事件的编写,一般都是统一去做的,但是如果你是玩玩的可能会单独赋值。
3、菜单单击事件的赋值。这一步很重要的,意味着系统菜单项单击的同时会触发你所赋值的那个事件。这些是理论。代码可以这样写:读取文件方式1、读取文件
这个我就不给了
2、根据文件的节点信息进行生成菜单项,并对相关属性信息赋值,]
这个我也不写了
3、菜单事件的定义定义一个菜单事件类
TMenuClickEvent = Class
....function TMenuClickEvent.DoClick(Sender: TObject): NotifyEvent;
begin
//定义菜单操作
//可以返回你需要的Caption和Name,上面的也给出了
end;4、对菜单项的事件进行赋值,赋值是上上面的DoClick
czx0514(自己创业) 特别感谢你提供的设计思想