如何在给自己的类设置事件触发过程(20分)

K

kane

Unregistered / Unconfirmed
GUEST, unregistred user!
自己在程序中定义一个类,然后对这个类的事件连到
已经写好的过程,以前写过,突然忘了,翻书也找不到了

例如
TPicPanel=class(TPanel)
public
ClickPanel:procedure ...
property OnClick:ClickPanel
....

end;

当我在Form上Create这个TPicPanel以后,它会调用
ClickPanel过程
 
不太明白你的意思,也许做一个指向过程的指针:)
 
Procedure(Param)of Object
 
to CJ:
就是说一个控件的事件已经连好过程了,当你创建这个
控件的时候,这个事件所对应的过程也创建好了.
比如我从Panel继承了一个控件,然后给这个控件的OnClick
事件加上过程,当我在主程序中动态创建好这个控件后,它的
OnClick事件也就有了
to:JJLET
可否写详细点,谢谢
 
在继承现有控件时,要继承其现有事件,只要在 published 部分重新声明即可。
如你要继承Panel的Click事件,则写如下代码即可:

unit Panel1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls;

type
TPanel1 = class(TPanel)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner : TComponent);override;
procedure DoClick(Sender : TObject);
published
property OnClick;
{ Published declarations }
end;

procedure Register;

implementation

procedure Register;
begin
RegisterComponents('Samples', [TPanel1]);
end;

constructor TPanel1.Create(AOwner : TComponent);
begin
inherited Create(AOwner);
OnClick := DoClick;
end;

procedure TPanel1.DoClick(Sender : TObject);
begin
ShowMessage('你成功了!');
end;
end.

朋友,20分,还是给了吧!
 
刚出去一会儿就让吕雪松捷足先登了。
 
呵呵,谢谢吕雪松,好象是这样子的,都怪自己记性不好
怎么就忘了,呵呵这就加上,另请看<a href="DispQ.asp?LID=104531">看我的另一个问题</a>
 
接受答案了.
 
刚出去一会儿就让吕雪松捷足先登了。
 
<a href ="http://nt4.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=1648">请看这里</a>
 

Similar threads

回复
0
查看
660
不得闲
S
回复
0
查看
800
SUNSTONE的Delphi笔记
S
S
回复
0
查看
802
SUNSTONE的Delphi笔记
S
顶部