TObject/fi

From Free Pascal wiki

English (en) suomi (fi)

TObject on kantaluokka kaikille luokille ( class ) , riippumatta siitä onko niin määritelty tai ei. Siinä on erittäin yleisiä metodeita, pääosin virtuaalisia (virtual ). Peruste TObject:lle on, että Object Pascalissa jokainen luokka on johdettu toisesta luokasta, ja TObject on poikkeus, joka päättää tämän ketjun.

Rakentaja constructor TObject.Create(), on kaikkien muiden luokkien oletuksena perimä. Se voidaan piilottaa tekemällä toinen rakentaja, jolla on sama nimi johdetussa luokassa joko parametreilla tai ilman niitä. Tämä on kätevä Singleton-mallin toteuttamisessa.


 { Määritelty tiedostossa objpash.inc }


constructor Create; 
destructor  Destroy; virtual;
class function newinstance : tobject; virtual;
procedure CleanupInstance;
procedure FreeInstance; virtual;

function  SafeCallException(exceptobject : tobject; exceptaddr : codepointer) : HResult; virtual;
procedure DefaultHandler(var message);virtual;
procedure Free;

class function InitInstance(instance : pointer) : tobject; 
class function ClassType : tclass; 
class function ClassInfo : pointer;
class function ClassName : shortstring;
class function ClassNameIs(const name : string) : boolean;
class function ClassParent : tclass;
class function InstanceSize : SizeInt;
class function InheritsFrom(aclass : tclass) : boolean;
class function StringMessageTable : pstringmessagetable;
class function MethodAddress(const name : shortstring) : codepointer;
class function MethodName(address : codepointer) : shortstring;
function FieldAddress(const name : shortstring) : pointer;

procedure AfterConstruction;virtual;
procedure BeforeDestruction;virtual;

procedure DefaultHandlerStr(var message);virtual;

procedure Dispatch(var message);virtual;
procedure DispatchStr(var message);virtual;

function GetInterface(const iid : tguid; out obj) : boolean;
function GetInterface(const iidstr : shortstring;out obj) : boolean;
function GetInterfaceByStr(const iidstr : shortstring; out obj) : boolean;
function GetInterfaceWeak(const iid : tguid; out obj) : boolean;

class function GetInterfaceEntry(const iid : tguid) : pinterfaceentry;
class function GetInterfaceEntryByStr(const iidstr : shortstring) : pinterfaceentry;
class function GetInterfaceTable : pinterfacetable;

class function UnitName : ansistring;
function Equals(Obj: TObject) : boolean; virtual;
function GetHashCode: PtrInt; virtual;
function ToString: ansistring; virtual;