Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2014/7/19 0:11:03 Delphi带历史信息的菜单实例
实例锐明在有些软件中,菜单栏中可以记录已经打开过的文件信息,使用户操作简单、快捷。当用户要打开己打开过的文件时,不需要重复查找,只需选择菜单中打开过的文件,即可实现打开该文件的操作。运行本例,效果如果所示。效果如图所示技术要点本例使用的是动态插入菜单的技术,利用菜单的动态插入技术,可以完成在菜单中记录打开过文档的功能,即当打开一个文件后,将这个文件的完整路径插入到菜单的相应位置。主要用到了TMainMenu组件的Insert()方法。在菜单的OnChange事件中。为菜单项指定相应的事件。动态插入菜单项的代码如下:procedure TForm1.N2Click(Sender: TObject);varQQ:Tmenuitem;beginQQ:=Tmenuitem.Create(nil);if OpenDialog1.Execute thenbeginQQ.Caption:=OpenDialog1.FileName;MainMenu1.Items.Items[0].Insert(3,QQ);end;end;注意:动态插入菜单项,首要创建TMenuItem菜单对象。实现过程1.新建一个工程,该工程会自动创建一个主窗体,默认命名为Form1.2.在窗体上添加TMainMenu组件和TOpenDialog组件。3.程序代码如下:procedure TForm1.N2Click(Sender: TObject);varQQ:Tmenuitem;beginQQ:=Tmenuitem.Create(nil);if OpenDialog1.Execute thenbeginQQ.Caption:=OpenDialog1.FileName;MainMenu1.Items.Items[0].Insert(3,QQ);end;end;procedure TForm1.N4Click(Sender: TObject);vari:integer;beginfor i:=3 to mainmenu1.Items.Items[0].Count-3 dobeginmainmenu1.Items.Items[0].Items[i].OnClick:=mainmenu1.Items.Items[0].Items[2].OnClick;end;self.Close;end;procedure TForm1.MainMenu1Change(Sender: TObject; Source: TMenuItem;Rebuild: Boolean);vari:integer;beginfor i:=2 to mainmenu1.Items.Items[0].Count-3 dobeginmainmenu1.Items.Items[0].Items[i].OnClick:=button1.OnClick;end;end;procedure TForm1.exe;beginshowmessage('选中 ');end;procedure TForm1.Button1Click(Sender: TObject);beginexe;end;end.
赞