如何执行动态生成的菜单内容?(50分)

  • 主题发起人 主题发起人 ilovedelphi3
  • 开始时间 开始时间
I

ilovedelphi3

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟的意思是比如记事板有个“最近打开的文件”功能,其中
的菜单内容是动态生成的,那么我在自己的程序中已经生成了
“最近打开的文件”,比如其中有c:/a.txt|d:/b.txt...,那么
我如何做才能让我按“c:/a.txt”就可以打开这个文件?
 
生成的动态菜单是相应文件的链接!
 
我看过关于“生成的动态菜单”的程序,用对注册表操作即可完成,我想还可以采用
对Tinifiles的操作来完成
 
这个问题已说过多次。
 
换一个名字,到下面看一看:
http://burks.bton.ac.uk/burks/language/pascal/devfaq/


unit Unit1;

interface

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

type
TForm1 = class(TForm)
RichEdit1: TRichEdit;
OpenDialog1: TOpenDialog;
Button3: TButton;
MainMenu1: TMainMenu;
procedure Button1Click(Sender: TObject);
procedure FileOpen(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var
NewItem: TMenuItem;
I : integer;
begin
{ first create the separator }
NewItem := TMenuItem.Create(Self);
NewItem.Caption := '-';
{ add the new item to the Windows menu }
// MainMenu1.Add(NewItem);
{ now create and add a menu item for each form }
for I := 0 to Screen.FormCount-1 do
begin
NewItem := TMenuItem.Create(Self);
NewItem.Caption := Screen.Forms.Name;
// Windows.Add(NewItem);

end;

end;


{var

Newitem:Tmenuitem;
I:integer;
begin

Newitem:=TmenuItem.create(Self);
Newitem.caption:=Form1.Name;

Newitem.Onclick:=fileopen;
end;}


procedure TForm1.FileOpen(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
//PerformFileOpen(OpenDialog.FileName);
richEdit1.lines.loadfromfile(OpenDialog1.filename);
end;
end;


procedure TForm1.Button3Click(Sender: TObject);
var
newitem : Tmenuitem;
begin
newitem:=tmenuitem.create(Mainmenu1);
newitem.caption:='111';
mainmenu1.items.insert(mainmenu1.items.count,newitem);
Newitem.Onclick:=fileopen;

end;


end.
 
我用了这个ftp://ftp.cdrom.com/pub/delphi_www/ftp/d20free/mruflist.zip
元件,可以很方便的生成“最近打开的文件”,但是我无法让动态生成的
菜单内容具有ONCLICK事件,就是说:比如其中有c:/a.txt|d:/b.txt...,那么
我如何做才能让我按“c:/a.txt”就可以打开这个文件?
 
生成时指定Onclick事件呀, OnClick事件中可以简单shellexecute这个menuitem的caption. :>
 
接受答案了.
 
后退
顶部