Студопедия

КАТЕГОРИИ:

АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника


Характеристика класса TObject. Методы класса. Примеры.




Класс TОbject реализует функции, которые обязательно будет выполнять любой объект, который может быть создан в среде разработки. В первую очередь это создание и уничтожение экземпляра объекта.

Процесс создания объекта включает выделение области адресного пространства, установку указателя на экземпляр объекта, задание начальных значений свойств и выполнение установочных действий, связанных с назначением объекта. Объявление конструктора выглядит следующим образом:

Constructor Create;

Для уничтожения экземпляра объекта в TObject предназначены методы Destroy и Free:

Destructor Destroy; Virtual;

Procedure Free

Destroy обеспечивает освобождение всех занимаемых экземпляром объекта ресурсов. При уничтожении объектов рекомендуется вместо деструктора вызывать метод Free, который просто вызывает деструктор, но перед этим проверяет, чтобы указатель на экземпляр объекта был не пустым (не был равен Nil). Это позволяет избежать серьезных ошибок.

Если объект является владельцем других объектов (например, форма владеет всеми размещенными на ней компонентами), то его метод Free автоматически вызовет эти же методы для всех объектов. Поэтому при закрытии формы разработчик избавлен от необходимости заботиться об уничтожении всех компонентов.

Каждый объект должен содержать некоторую информацию о себе, которая используется приложением и средой разработки. Поэтому класс TObject содержит ряд методов, обеспечивающих представление этой информации в потомках.

Функция ClassName: ShortString; возвращает имя объекта, которое может быть использовано для идентификации. Например, один метод-обработчик щелчка на кнопке может работать с несколькими типами компонентов кнопок:

Procedure TForm1.Button1Click(Sender : TObject);

Begin

If Sender.ClassName = ‘TButton’ Then (Sender AS TButton).Enabled := False;

If Sender.ClassName = ‘TSpeedButton’ Then

(Sender AS TSpeedButton).Down := True;

End;

Метод ClassNamesIs (const Name : string) : Boolean; позволяет определить, принадлежит ли данный объект тому типу, имя которого передано в параметре Name. В случае положительного ответа функция возвращает True.

Методы

Метод ClassType:

function ClassType: TClass;

 

Метод ClassType возвращает указатель на класс объекта, для которого был вызван этот метод, что позволяет динамически определять класс объекта в конкретный момент времени.

 

Метод CleanupInstance:

procedure CleanupInstance;

 

Метод CleanupInstance выполняет корректное завершение работы с длинными строками и записями уничтожаемого объекта.

 

Метод FreeInstance:

procedure FreeInstance; virtual;

 

Метод FreeInstance освобождает память, выделенную объекту ранее с помощью метода NewInstance. Во время работы вызывает методы InstanceSize и CleanupInstance.

 

Метод Dispatch:

procedure Dispatch(var Message);

 

Метод Dispatch вызывает управляемые сообщениями методы.

 

Метод DefaultHandler:

procedure DefaultHandler(var Message); virtual;

 

Метод DefaultHandler обеспечивает управление всеми сообщениями объекта, для которых он не имеет собственных обработчиков. Метод DefaultHandler класса TObject не выполняет ничего, кроме возврата управления.

 

Метод FieldAddress:

function FieldAddress(const Name: ShortString): Pointer;

 

Метод FieldAddress возвращает адрес заданного параметром Name поля объекта, если это поле является опубликованным (published) или nil, в противном случае.

 


Поделиться:

Дата добавления: 2014-12-23; просмотров: 176; Мы поможем в написании вашей работы!; Нарушение авторских прав





lektsii.com - Лекции.Ком - 2014-2024 год. (0.006 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты