Библиотека визуальных компонентов VCL и ее базовые классы
Иерархия базовых классов
Все классы библиотеки визуальных компонентов произошли от группы базовых классов, которые лежат в основе иерархии VCL. Самый общий предок компонентов – это класс TObject, инкапсулирующий простейший объект. Как известно (см. гл. 1), каждый объект наследует свойства и методы родительского класса.Класс TObject
Класс TObject является родоначальником всей иерархии использующихся в Delphi классов VCL. Он реализует функции, которые обязательно будет выполнять любой объект, который может быть создан в среде разработки.Класс TPersistent
"Persistent" в переводе с английского означает "устойчивый", "постоянный". Что же такого постоянного в одноименном классе? Ответ таков: виртуальный метод procedure Assign(Source: TPersistent);. | Этот важнейший метод осуществляет копирование содержимого одного объекта (source) в другой (self, т. е.Класс TComponent
Класс TComponent является предком всех компонентов VCL. Он используется в качестве основы для создания невизуальных компонентов и реализует основные механизмы, которые обеспечивают функционирование любого компонента. В нем появляются первые свойства, которые отображаются в Инспекторе объектов.Базовые классы элементов управления
Вслед за классом TComponent в иерархии базовых классов (см. рис. 2.1) располагается группа из трех классов, которые обеспечивают создание различных визуальных компонентов. Визуальные компоненты – это разнообразные стандартные для Windows и специальные (созданные разработчиками Inprise) элементы управления.Класс TControl. Группа свойств Visual. Местоположение и размер элемента управления.
Класс TControi является базовым для всех визуальных компонентов и инкапсулирует механизмы отображения компонента на экране. В нем используется множество новых свойств и методов. Недаром в Delphi в Инспекторе объектов появилась категоризация методов и свойств (рис. 2.2).Выравнивание элемента управления
Для выравнивания компонента в рабочей области его владельца (обычно это форма) применяется свойство: | property Align: TAlign; | Тип TAlign объявлен следующим образом: | type TAlign = (alNone, ALTop, alBottom, alLeft, alRight, alClient); | При значении alNone выравнивание отсутствует.Внешний вид элемента управления. Связь с родительским элементом управления.
Для определения цвета компонента используется свойство: | property Color: TColor; | При нахождении указателя мыши над компонентом его изображение может изменяться в соответствии со значением свойства: | property Cursor: TCursor; | Для текста компонента шрифт обычно задается свойством: | property Font: TFont;Класс TWinControl
Класс TWinControl обеспечивает создание и использование оконных элементов управления (см. выше). Напомним, что оконный элемент управления имеет системный дескриптор окна hwnd. Однако оконными элементами являются не только формы и диалоги, но и большинство стандартных элементов управления.Класс TCustomControl. Класс TGraphicControl.
Класс TCustomControl предназначен для создания на его основе нестандартных оконных элементов управления. Процесс визуализации в нем упрощен за счет использования специального класса TCanvas, инкапсулирующего канву (см. гл. 11). | Доступ к канве осуществляется через свойство: | property Canvas: TCanvas;