Главная » Delphi » Базовый класс TObject

0

Все объекты языка Object Pascal являются производными (наследниками) базового (родительского) класса  TObject, а следовательно, автоматически наследуют  все его методы.  В результате любой  объект способен, например, сообщить свое  имя,  тип  и даже указать, является ли он производным от того  или класса. Самым замечательным во всем этом механизме является тот факт, что прикладной программист избавлен отнеобходимости беспокоиться о реализации стандартных функций — он может  просто использовать их по своему усмотрению.

TObject является особым  объектом, определение которого расположено в модуле

System и всегда доступно  компилятору:

type

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;

Документацию каждого  из перечисленных методов можно  найти в интерактивной справочной системе Delphi.

Обратите внимание на методы, объявление которых начинается со слова class. Это означает, что метод может  быть вызван  как обычная процедура или функция без созда ния экземпляра класса,  членом которого является данный метод.  (Аналоги таких  мето дов в языке  C++ — это методы, объявленные как static.) Будьте осторожны при созда нии подобных методов — они не должны  использовать никакой информации экземпля ра класса, поскольку это приведет к ошибке компиляции.

Источник: Тейксейра, Стив, Пачеко, Ксавье.   Borland Delphi 6. Руководство разработчика. : Пер.  с англ. — М. : Издательский дом “Вильямс”, 2002. —  1120 с. : ил. — Парал. тит. англ.

По теме:

  • Комментарии