delphi的Tobject类赏析
TObject = class
//创建
constructor Create;
//释放
procedure Free;
//初始化实列
class function InitInstance(Instance: Pointer): TObject;
//清除实列
procedure CleanupInstance;
//获得类的类型
function ClassType: TClass;
//获得了的名称
class function ClassName: ShortString;
//判断类的名称
class function ClassNameIs(const Name: string): Boolean;
//类的父类
class function ClassParent: TClass;
//类的信息指针
class function ClassInfo: Pointer;
//当前类的实列大小
class function InstanceSize: Longint;
//判断是否从一个类继承下来
class function InheritsFrom(AClass: TClass): Boolean;
//根据方法的名称获得方法的地址
class function MethodAddress(const Name: ShortString): Pointer;
//根据地址或的方法的名称
class function MethodName(Address: Pointer): ShortString;
//根据名称获得属性的地址
function FieldAddress(const Name: ShortString): Pointer;
//查询接口
function GetInterface(const IID: TGUID; out Obj): Boolean;
//获得接口的入口
class function GetInterfaceEntry(const IID: TGUID): PInterfaceEntry;
//获得接口表
class function GetInterfaceTable: PInterfaceTable;
//安全调用例外
function SafeCallException(ExceptObject: TObject;
ExceptAddr: Pointer): HResult; virtual;
//创建之后的执行
procedure AfterConstruction; virtual;
//释放之前的执行
procedure BeforeDestruction; virtual;
//分派消息
procedure Dispatch(var Message); virtual;
//默认的句柄
procedure DefaultHandler(var Message); virtual;
//新的实列
class function NewInstance: TObject; virtual;
//释放实列
procedure FreeInstance; virtual;
//释放
destructor Destroy; virtual;
end;