Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:11:03
Delphi带历史信息的菜单实例

Delphi带历史信息的菜单实例

实例锐明

在有些软件中,菜单栏中可以记录已经打开过的文件信息,使用户操作简单、快捷。当用户要打开己打开过的文件时,不需要重复查找,只需选择菜单中打开过的文件,即可实现打开该文件的操作。运行本例,效果如果所示。



效果如图所示

技术要点

本例使用的是动态插入菜单的技术,利用菜单的动态插入技术,可以完成在菜单中记录打开过文档的功能,即当打开一个文件后,将这个文件的完整路径插入到菜单的相应位置。主要用到了TMainMenu组件的Insert()方法。在菜单的OnChange事件中。为菜单项指定相应的事件。动态插入菜单项的代码如下:

procedure TForm1.N2Click(Sender: TObject);

var

QQ:Tmenuitem;

begin

QQ:=Tmenuitem.Create(nil);

if OpenDialog1.Execute then

begin

QQ.Caption:=OpenDialog1.FileName;

MainMenu1.Items.Items[0].Insert(3,QQ);

end;

end;

注意:动态插入菜单项,首要创建TMenuItem菜单对象。

实现过程

1.新建一个工程,该工程会自动创建一个主窗体,默认命名为Form1.

2.在窗体上添加TMainMenu组件和TOpenDialog组件。

3.程序代码如下:

procedure TForm1.N2Click(Sender: TObject);

var

QQ:Tmenuitem;

begin

QQ:=Tmenuitem.Create(nil);

if OpenDialog1.Execute then

begin

QQ.Caption:=OpenDialog1.FileName;

MainMenu1.Items.Items[0].Insert(3,QQ);

end;

end;

procedure TForm1.N4Click(Sender: TObject);

var

i:integer;

begin

for i:=3 to mainmenu1.Items.Items[0].Count-3 do

begin

mainmenu1.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);

var

i:integer;

begin

for i:=2 to mainmenu1.Items.Items[0].Count-3 do

begin

mainmenu1.Items.Items[0].Items[i].OnClick:=button1.OnClick;

end;

end;

procedure TForm1.exe;

begin

showmessage('选中 ');

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

exe;

end;

end.




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759