Класс TObject
При уничтожении объектов рекомендуется вместо деструктора использовать метод Free, который просто вызывает деструктор, но перед этим проверяет, чтобы указатель на экземпляр объекта был не пустым (не был равен Nil). Это позволяет избежать серьезных ошибок.
Если объект является владельцем других объектов (например, форма владеет всеми размещенными на ней компонентами), то его метод Free автоматически вызовет эти же методы для всех объектов. Поэтому при закрытии формы разработчик избавлен от необходимости заботиться об уничтожении всех компонентов.
Для освобождения занимаемой объектом памяти деструктор автоматически Вызывает метод Freelnstance:
procedure Freelnstance; virtual;
Каждый объект должен содержать некоторую информацию о себе, которая используется приложением и средой разработки. Поэтому класс TObject содержит ряд методов, обеспечивающих представление этой информации в потомках.
Метод class function Classlnfo: Pointer; возвращает указатель на таблицу информации времени выполнения (RTTI). Эта информация используется в среде разработки и в приложении.
Функция class function ClassName: ShortString; возвращает имя типа объекта, которое может быть использовано для идентификации. Например, один метод-обработчик щелчка на кнопке может работать с несколькими типами компонентов кнопок:
procedure TForml.BitBtnlClick(Sender: TObject); begin if Sender is TBitBtn then TBitBtn(Sender).Enabled: = False; if Sender is TSpeedButton then TSpeedButton(Sender).Down: = True; end;
Метод class function ClassNamels(const Name: string): Boolean; позволяет определить, является ли данный объект того типа, имя которого передано в параметре Name. В случае положительного ответа функция возвращает True.
Как известно, программирование для Windows основано на событиях. Каждое приложение и каждый программный объект должны уметь реагировать на сообщение о событиях и, в свою очередь, рассылать сообщения. В выполнении этих операций заключается третья общая для всех объектов функция.
Метод procedure Dispatch(var Message): virtual; осуществляет обработку сообщений, поступающих объекту. Он определяет, сможет ли объект обработать сообщение при помощи собственных обработчиков событий. В случае отсутствия таких методов сообщение передается аналогичному методу Dispatch класса-предка (если он есть).
Класс TObject имеет предопределенный обработчик событий:
procedure DefaultHandler(var Message); virtual;
Кроме рассмотренных здесь методов, класс TObject имеет еще несколько методов, которые в основном применяются для взаимодействия объекта со средой разработки.
В целом класс TObject может служить для создания на его основе некоторых простых классов для использования в приложениях.