var
mymainmenu:tmainmenu;
myitem:array[0..2] of tmenuitem;
begin
mymainmenu:=tmainmenu.Create(self);for i:=0 to 2 do
myitem[i]:=tmenuitem. Create(self);
myitem[0].caption:='Text' ;
mymainmenu.Items.Add(myitem[0]) ;
mymainmenu:tmainmenu;
myitem:array[0..2] of tmenuitem;
begin
mymainmenu:=tmainmenu.Create(self);for i:=0 to 2 do
myitem[i]:=tmenuitem. Create(self);
myitem[0].caption:='Text' ;
mymainmenu.Items.Add(myitem[0]) ;
解决方案 »
- 如何用delphi编麻将游戏
- 急,如何把设计好的程序中的表格字段捕捉下来?
- InstallShield Developer 8.02 创建的新工程,为什么只有几个对话框(安装界面),我怎样增加安装对话框?--在线等待100分
- ADOStoredProc1最简单问题,如何实现最简单应用。我写程序如下,错误,马上给分,
- 帮忙了,给分了!!
- ★★★★★救命啊!发现delphi6.0在安装了update 2后form的scrollbar的style属性就失效了,改成什么样式都没有变化,还是默认的样式,而
- 求职!
- 用Delphi操作Excel的问题?
- 哪位朋友能给我一个Soft-Ice的注码! 谢了
- 谁有DsgnIntf.dcu呀,请给我发一个。谢谢了?
- 请问用Ttable联接数据时(access,sql)怎么屏蔽要求输入口令的对话框
- 请教: 如何找到 菜单 的 双亲?
Form1: TForm1;
MyMainMenu: TMainMenu;
MyPopUpMenu: TPopUpMenu;
MySubItem1,MySubItem2 : TMenuItem;
MySubItems: array[0..3] of TMenuItem;
MyPopUpItems: array[0..3] of TMenuItem;
implementation{$R *.DFM}procedure TForm1.MyPopupHandler(Sender: TObject);
begin
with Sender as TMenuItem do begin
ShowMessage(Caption);
end;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
MyMainMenu:= TMainMenu.Create(Self);
Button4.Enabled := true;
ShowMessage('MainMenu created but no items' + #13+
'are added so it does not show.');
Button1.Enabled := False;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
MyPopUpMenu := TPopUpMenu.Create(self);
Button3.Enabled := true;
ShowMessage('PopUpMenu created.');
Button2.Enabled := False;
end;procedure TForm1.Button7Click(Sender: TObject);
begin
MyPopUpMenu.Popup(Form1.Left + 60, Form1.Top + 140);
Button9.Enabled := true;
end;procedure TForm1.Button3Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 3 do begin
MyPopUpItems[i] := TMenuItem.Create(Self);
MyPopUpItems[i].Caption := 'New item ' + IntToStr(i);
MyPopUpMenu.Items.Add(MyPopUpItems[i]);
end;
Button7.Enabled := true;
Button3.Enabled := False;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
MyItem: array[0..2] of TMenuItem;
i: Integer;
begin
for i := 0 to 2 do begin
MyItem[i] := TMenuItem.Create(Self);
MyItem[i].Caption := 'New item ' + IntToStr(i);
MyMainMenu.Items.Add(MyItem[i]);
end;
Button4.Enabled := False;
Button5.Enabled := true;
end;
procedure TForm1.Button5Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 3 do begin
MySubItems[i] := TMenuItem.Create(Self);
MySubItems[i].Caption := 'New item ' + IntToStr(i);
MySubItems[i].OnClick := MyPopUpHandler;
MyMainMenu.Items[0].Add(MySubItems[i]);
end;
Button6.Enabled := true;
Button8.Enabled := true;
Button5.Enabled := False;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
MySubItems[3].Break := mbBarBreak;
end;procedure TForm1.Button8Click(Sender: TObject);
begin
MySubItems[2].Caption :='-';
end;procedure TForm1.Button9Click(Sender: TObject);
var
i: Integer;
begin
for i := 0 to 3 do begin
MyPopUpItems[i].OnClick := MyPopupHandler;
end;
end;end.
初始化一个TTMenuItem.然后主要参考TTreeView的LoadFromFile(即TTreeString的LoadFromFile,文件格式我也是参考SaveToFile后的文件格式。
采用的方法主要是将“添加一个菜单项’依附于ATreeNode的添加树形结点的做法。树加一个结点我就加一个菜单项。
这样作不受层次(LEVEL)的限制,每层的数量也不限,效果还可以。最后感谢大家的帮助。