TClockThread是个线程类,TForm1是个窗体类
TClockChanged = procedure(ADateTime : TDateTime ) of object 是个方法指针,调用时可以声明变量,如:FOnClockChanged : TClockChanged
可以对其附值:如,
FOnClockChanged := ClockChanged;
但ClockChanged的函数原形必须也是:procedure(ADateTime : TDateTime );
即,
procedure ClockChanged(ADateTime : TDateTime );
begin
//
end;
TClockThread是线程类,线程类的声名一般是:
=
TmyThread= class(TThread)
private
....
protected
procedure Execute; override;
public
//
end; 对于线程类,最主要是override过程Execute,过程Execute中的代码是其执行部分,该过程执行完成,该线程实例也就执行完了。
具体可以看看有关线程的知识。对于线程TClockThread :
TClockThread = class(TThread)
private
FOnClockChanged : TClockChanged;
protected
procedure Execute; override;
public
property OnClockChanged : TClockChanged read FOnClockChanged write FOnClockChanged;
end; 他有一个方法指针类型的私有变量FOnClockChanged,通过其public 类型的属性OnClockChanged来访问,如:
FClockThread.OnClockChanged := ClockChanged;
TForm1中定义了有TClockThread类的一个实例(FClockThread : TClockThread),该实例在窗体生成时也生成了。
TClockChanged = procedure(ADateTime : TDateTime ) of object 是个方法指针,调用时可以声明变量,如:FOnClockChanged : TClockChanged
可以对其附值:如,
FOnClockChanged := ClockChanged;
但ClockChanged的函数原形必须也是:procedure(ADateTime : TDateTime );
即,
procedure ClockChanged(ADateTime : TDateTime );
begin
//
end;
TClockThread是线程类,线程类的声名一般是:
=
TmyThread= class(TThread)
private
....
protected
procedure Execute; override;
public
//
end; 对于线程类,最主要是override过程Execute,过程Execute中的代码是其执行部分,该过程执行完成,该线程实例也就执行完了。
具体可以看看有关线程的知识。对于线程TClockThread :
TClockThread = class(TThread)
private
FOnClockChanged : TClockChanged;
protected
procedure Execute; override;
public
property OnClockChanged : TClockChanged read FOnClockChanged write FOnClockChanged;
end; 他有一个方法指针类型的私有变量FOnClockChanged,通过其public 类型的属性OnClockChanged来访问,如:
FClockThread.OnClockChanged := ClockChanged;
TForm1中定义了有TClockThread类的一个实例(FClockThread : TClockThread),该实例在窗体生成时也生成了。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货