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;