简单问题,大家都来看,关于参数的传递

wlq 2000-03-25 10:54:00
我的函数里需要把某一过程名赋给元件的事件处理过程比如
form1.OnDblClick:=MyClick;
有没有什么方法把MyClick当做一个参数传递呢,这是一个TNotifyEvent
类型,又如何为它赋值呢
...全文
142 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wlq 2000-03-26
  • 打赏
  • 举报
回复
首先感谢二位的解答
我的想法是这样,我要调一个自定义的过程,这个过程又以另一个过程为参数,好象
这样:
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Button2: TButton;
procedure Button1Click(Sender: TObject);

private
{ Private declarations }
public
procedure myprocedure(my:Tnotifyevent);
procedure myclick; //myclick是myprocedure 的参数
{ Public declarations }
end;

... ...
procedure Tform1.myclick;
begin
edit1.Text:='hello!';
end;


procedure Tform1.myprocedure(my:Tnotifyevent);
begin
form1.Button2.OnClick:=my;
end;



procedure TForm1.Button1Click(Sender: TObject);
begin
myprocedure(myclick);
end;

end.
显然不能通过编译,c里有函数指针,delphi里怎么做?
kxy 2000-03-26
  • 打赏
  • 举报
回复
public
procedure myprocedure(my:Tnotifyevent);
procedure myclick; //myclick是myprocedure 的参数
//改为 procedure MyClick(sender:TObject);
{ Public declarations }
end;
myclick就是函数指针,
delphi help
TNotify = procedure(sender:TObject) of Object;
所以 myclick的定义也要是要有一个参数。
C中的函数指针的使用不是一样要参数一样吗?
jll 2000-03-26
  • 打赏
  • 举报
回复
猜:
type
myclick=procedure of Tnotifyevent;
wlq 2000-03-26
  • 打赏
  • 举报
回复
我当初想做这样一个东西:有一个过程是生成元件的,好象按钮,按钮就有单击事件,
封装在一个函数中到处都能用,好象parent属性(指form1),onclick事件,都用参数
传进去,请各位指点,我对delphi不熟
torent 2000-03-25
  • 打赏
  • 举报
回复

MyClick: TNotifyEvent;

procedure MyFunction(...; MyFuncParam: TNotifyEvent; ...);

....
....


begin
....
MyFunction(..., MyClick, ...);
....
end;


OK!
kxy 2000-03-25
  • 打赏
  • 举报
回复
有何问题,

procedure transit(a:TNotifyEvent);
begin
form1.OnDb1Click := a;
end;

如何赋值是什么意思,你是传一个函数指针,要先定义这个函数;
TForm1=class(TForm)
protected
proceure MyClick(sender:TObject);
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧