DELPHI的类构造器 class constructor 注意点。
class constructor 的一般行为和 initialization 行为一样,但有一点区别,就是不能在class constructor中注册自己,在initialization 中可以,见示例:
unit Unit2;
interface
uses
System.SysUtils, System.Classes;
type
TMyObject = class
private
class constructor Initializate;
class destructor Uninitializate;
end;
implementation
{ TMyObject }
class constructor TMyObject.Initializate;
begin
//RegisterClass(TMyObject); //这个不能工作
end;
class destructor TMyObject.Uninitializate;
begin
//UnRegisterClass(TMyObject);
end;
initialization
RegisterClass(TMyObject); //这个可以
finalization
UnRegisterClass(TMyObject);
end.
在class constructor中注册自己,只是想省了写initialization 节,因为其它代码写在class constructor中.....
DELPHI的帮助中没有提及,找到一个类似的连接: