小弟刚接触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,不太熟悉,但有个活特急,分不多,见谅!!

解决方案 »

  1.   

    FOnTime(Sender:Tobject)定义的是什么//
    就是一个private 类的过程
    TTimeEvent = procedure (times:integer) of object;
    //可以理解成一个过程对象的
    published(公开)
        property  OnSecond :TTimeEvent read FOnTimer write FOnTimer;
    这是一个公开属性的定义,一个组件自然该有属性,属性有公开和私有的分别,公开的,当该单元被调用,就可以访问,至于它的可读,可写,你看后面,就知道的,私有的只有在过程内有用的,也就是指他的作用范围