我在编程时遇到一个问题: 不能给每个动态生成的菜单分配一个有用事件处理过程(同一过程)
具体问题如下: 本人在一程序中采用了动态生成菜单项来管理备份的文件,既备份一次,增加一项,以后用菜单来调出备份的文件.
菜单项:
Caption属性 用的是备份时间表示,
Name属性 用"一字符(B) + intToStr(一整型变量(自动递增))",
Hint属性 用的是"文件的备份路径及文件名表示"(用作传递给响应菜单单击 事件过程的参数)
OnClick属性 用的一个自定义过程.
问题来了:
如何在自定义过程中获得是那个菜单项的单击事件发生,并且要把它的Hint属性值取出,作为查询是的参数.
请各位朋友指教,谢谢
具体问题如下: 本人在一程序中采用了动态生成菜单项来管理备份的文件,既备份一次,增加一项,以后用菜单来调出备份的文件.
菜单项:
Caption属性 用的是备份时间表示,
Name属性 用"一字符(B) + intToStr(一整型变量(自动递增))",
Hint属性 用的是"文件的备份路径及文件名表示"(用作传递给响应菜单单击 事件过程的参数)
OnClick属性 用的一个自定义过程.
问题来了:
如何在自定义过程中获得是那个菜单项的单击事件发生,并且要把它的Hint属性值取出,作为查询是的参数.
请各位朋友指教,谢谢
解决方案 »
- 如何用delphi 把Excel,Word文件中生成到PDF文件
- [Fatal Error] Could not create output file 'D:\Borland Delphi 7 Studio Enterprise\Borland Delphi 7 Studio Enterprise\Projects\学生
- delphi 应用chr出现的问题,请帮忙
- 求树型控件用法,请高手赐教。级别太低,只能放100分,分不够再加。谢谢
- fastreprot的直接打印语句怎么写呀???(急急急。。。。。)
- 问个很菜的问题:关于query的!
- 把c表中的数据更新到a,b中(a中没有时插入b中)如何提高速度
- 用Delphi7编出的托管代码程序需要CLR吗?
- ****谁知道CollectionsEqual函数的用法,谁能推荐几本进销存的好书****
- select 语句中变量赋值问题
- 请各位仁兄帮帮忙,关于打印预览的问题。
- 一个SHOWMODAL的问题(很简单的)
unit Unit1;
interface
uses
Windows, Messages,Menus, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure MyClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyClick(Sender: TObject);
begin
showmessage((Sender as tmenuitem).Caption);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
mymainmenu:tmainmenu;
myitem:array[0..2] of tmenuitem;
a,b:tmenuitem;
i:integer;
begin
mymainmenu:=tmainmenu.Create(self);
for i:=0 to 2 do
myitem[i]:=tmenuitem.Create(self);
myitem[0].caption:='java' ;
myitem[1].caption:='delphi' ;
mymainmenu.Items.Add(myitem[0]) ;
mymainmenu.Items.Add(myitem[1]) ;
myitem[0].onclick:=MyClick;
myitem[1].onclick:=MyClick;
end;
end.
unit Unit1;
interface
uses
Windows, Messages,Menus, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure MyClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.MyClick(Sender: TObject);
begin
showmessage((Sender as tmenuitem).Caption);
showmessage((Sender as tmenuitem).hint);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
mymainmenu:tmainmenu;
myitem:array[0..2] of tmenuitem;
a,b:tmenuitem;
i:integer;
begin
mymainmenu:=tmainmenu.Create(self);
for i:=0 to 2 do
myitem[i]:=tmenuitem.Create(self);
myitem[0].caption:='java' ;
myitem[0].Hint:='j' ;
myitem[1].caption:='delphi' ;
myitem[1].Hint:='d' ;
mymainmenu.Items.Add(myitem[0]) ;
mymainmenu.Items.Add(myitem[1]) ;
myitem[0].onclick:=MyClick;
myitem[1].onclick:=MyClick;
end;
end.