Иерархия базовых классов
В основе всего многообразия классов
и компонентов, используемых в Delphi, лежат всего лишь
пять базовых классов (рис. 2.1). Они обеспечивают выполнение
основных функций любого объекта — будь это стандартный
компонент VCL или специализированный объект, выполняющий
некоторые операции в приложении.
Рис. 2.1. Иерархия базовых
классов VCL
Благодаря механизму наследования свойств
и методов, потомки базовых классов умеют "общаться"
друг с другом; работают в среде разработки, взаимодействуя
с Палитрой компонентов и Инспектором объектов; распознаются
операционной системой как элементы управления и окна.
В основе иерархии классов лежит класс
TObject. Он обеспечивает выполнение
важнейших функций "жизнедеятельности" любого
объекта. Благодаря ему, каждый класс получает в наследство
механизмы создания экземпляра объекта и его уничтожения.
Обычно разработчик даже не задумывается
о том, как объект будет создан и что необходимо сделать
для его корректного уничтожения. Компоненты VCL создаются
и освобождают занимаемые ресурсы автоматически. Иногда
разработчику приходится создавать и удалять объекты
самостоятельно. Но даже в этом случае ему достаточно
вызвать соответствующие конструктор и деструктор:
var SomeList: TStrings;
...
SomeList :=
TStrings.Create;
...
SomeList.Free;
За кажущейся простотой этих операций
скрывается довольно сложная реализация указанных процессов.
Практически весь исходный код класса TObject
написан на ассемблере для обеспечения наибольшей эффективности
операций, которые будут выполняться в каждом его потомке.
Кроме этого, класс
TObject обеспечивает создание и хранение информации
об экземпляре объекта и обслуживание очереди сообщений.
Класс TPersistent
происходит непосредственно от класса TObject.
Он обеспечивает своих потомков возможностью взаимодействовать
с другими объектами и процессами на уровне данных. Его
методы позволяют передавать данные в потоки, а также
обеспечивают взаимодействие объекта с Инспектором объектов.
Класс TComponent
является важнейшим для всех компонентов. Непосредственно
от него можно создавать любые невизуальные компоненты.
Механизмы, реализованные в классе TComponent,
обеспечивают взаимодействие компонента со средой разработки,
главным образом с Палитрой компонентов и Инспектором
объектов. Благодаря возможностям этого класса, компоненты
начинают работать на форме проекта уже на этапе разработки.
Класс TControl
происходит от класса TComponent.
Его основное назначение — обеспечить функционирование
визуальных компонентов. Каждый визуальный компонент,
произошедший от TControl, наделяется
основными признаками элемента управления. Благодаря
этому, каждый визуальный компонент умеет работать с
GUI (Graphic User Interface — графический интерфейс
пользователя ОС) и отображать себя на экране.
Класс TWinControl
расширяет возможности разработчиков по созданию элементов
управления. Он наследуется от класса TControl
и обеспечивает создание оконных элементов управления.
На основе класса TWinControl
создан еще один дополнительный класс — TCustomControl.
Он обеспечивает создаваемые на его основе компоненты
возможностями по использованию канвы — специального
объекта, предназначенного для отображения графики (подробнее
о канве см. гл. Л).
Класс TCustomControl
является общим предком для целой группы классов, обеспечивающих
создание различных нестандартных типов оконных (получающих
фокус) элементов управления Windows: редакторов, списков
и т. д.
Для создания неоконных (не получающих
фокус) элементов управления используется класс TGraphicControl,
являющийся потомком класса TControli.
В целом иерархия базовых классов обеспечивает
полноценную работу разработчиков в Delphi, позволяя
проектировать любые типы приложений.
Ниже мы остановимся на основных свойствах
и методах базовых классов, выделяя только те, которые
могут пригодиться в реальной работе. Часть из них доступна
в Инспекторе объектов, часть может быть использована
в программном коде.
|