简单问题,向各位专家请教!在线等

hackking 2005-03-10 10:34:17
小弟刚接触delphi不久,现想编制组件,但看了书上的一段示例代码后,有些地方不太明白,请各位赐教!谢谢!
……
type
TTimeEvent = procedure (times:integer) of object;
TMyTimer = class(TComponent)
private
FTimer:TTimer;
FOnTimer:TTimeEvent;
FTimes:integer;
procedure FOnTime(Sender:Tobject);
protected
public
constructor create(AOwner:TComponent);override;
destructor destroy;override;
procedure start;
published
property OnSecond :TTimeEvent read FOnTimer write FOnTimer;
end;
constructor TMyTimer.create(AOwner:TComponent);
begin
inherited;
if not (csdesigining in ComponentState) then
begin
FTimer := TTimer.create(nil);
Ftime.interval := 1000;
Ftimer.OnTimer:= FOnTimer;
end;
end;

destructor TMytimer.destroy;
begin
FTimer.free;
inherited;
end;

procedure TMytimer.FOnTimer(Sender:Tobject);
begin
inc(FTimers);
if assigned(OnSecond) then
OnSecond(FTimes);
end;

procedure TMytimer.Start;
being
FTimes:=0;
FTimer.enable := true;
end;
我的问题是在delphi中是怎样把自定义事件关联起来的?可能我的理解有误,上述代码中FOnTime(Sender:Tobject)定义的是什么?应该怎样理解TTimerEvent?为什么会有OnSecond(FTimes);这名代码出现?应怎样理解?对不起,小弟刚学delphi,不太熟悉,但有个活特急,分不多,见谅!!
...全文
65 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
todouwang 2005-03-16
  • 打赏
  • 举报
回复
FOnTime(Sender:Tobject)定义的是什么//
就是一个private 类的过程
TTimeEvent = procedure (times:integer) of object;
//可以理解成一个过程对象的
published(公开)
property OnSecond :TTimeEvent read FOnTimer write FOnTimer;
这是一个公开属性的定义,一个组件自然该有属性,属性有公开和私有的分别,公开的,当该单元被调用,就可以访问,至于它的可读,可写,你看后面,就知道的,私有的只有在过程内有用的,也就是指他的作用范围
hackking 2005-03-15
  • 打赏
  • 举报
回复
为什么没有人回答?是嫌分太少了,还是不屑于回答
caiso 2005-03-11
  • 打赏
  • 举报
回复
顶一下
hackking 2005-03-11
  • 打赏
  • 举报
回复
怎么没人回帖呀?我自己顶!

5,388

社区成员

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

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