Иерархия классов CLX

Как уже говорилось ранее, библиотека классов CLX содержит наиболее применяемые компоненты, из которых строится ваше приложение. Так как в языке Object Pascal объекты создаются путем наследования, библиотека классов CLX построена по иерархическому принципу. Рассмотрим иерархию компонентов CLX (рис. 7.1).

Приведенный рис. 7.1 требует некоторых пояснений. Отметим, что данный рисунок показывает полную иерархию классов Kylix. Компоненты CLX являются лишь составной частью этой иерархии и начинаются с класса TComponent, который является базовым для всех компонентов CLX.

Далее рассмотрим полную иерархию классов Kylix.

Как мы уже знаем, все классы, и компоненты в том числе, являются прямыми или косвенными потомками класса TObject. Класс TObject инкапсулирует небольшой набор обычных для всех классов методов:

7-04-1.jpg

Рис. 7.1. Иерархия классов Kylix

Следующий базовый класс, являющийся прямым потомком TObject, — класс TPersistent. Данный класс является предком всех классов, предназначенных для работы с потоками. Класс TPersistent наследует все свойства и методы своего предка — класса TObject, и может, кроме того, считывать данные из потока и записывать их в поток. Класс TPersistent обеспечивает:

На одном уровне с классом TPersistent находится класс TStream, который тоже является прямым потомком класса TObject. Класс TStream является базовым для объектов потока. Этот класс может читать или записывать данные с носителей разных видов (файлы на дисках, динамическая память и т. д.). В дополнение к методам чтения, записи и копирования данных из потока настоящий класс обеспечивает поиск нужной позиции внутри потока. Этот класс относится к абстрактным классам и имеет следующие дочерние классы:

Потомком класса TPersistent является класс TComponent — базовый класс всех компонентов библиотеки компонентов CLX Kylix. Наследники класса TComponent, как и сам класс, имеют следующие возможности:

На одном уровне с классом TComponent находятся еще несколько классов. Рассмотрим наиболее интересные из них.

Класс TGraphic — потомок класса Tpersistent, абстрактный класс. Данный класс является родительским для таких объектов, как иконки, растровые изображения и метафайлы, которые могут хранить и отображать визуальные изображения. Данный класс, кроме того, предоставляет методы для работы с объектом TPicture и буфером обмена.

Класс THandleComponent — является базовым для невизуальных компонентов, у которых имеется дескриптор окна.

Дескриптор окна — это число (индекс), индивидуальное для данного конкретного окна, назначаемое системой Linux.

Класс TField — является базовым для всех компонентов, содержащих поля. Данный класс инкапсулирует свойства, события и методы, которые используются для:

Класс TDialog — это абстрактный класс, являющийся предком для всех диалоговых окон. Он используется как базовый класс для двух основных типов диалоговых окон CLX:

Следующий класс — потомок вышеописанного класса TComponent — класс TControl. Класс TControl является базовым классом для всех визуальных компонентов, т. е. потомки этого класса будут видны и доступны пользователю во время выполнения приложения. Все классы, являющиеся потомками TControl, имеют свойства, методы и события, которые определяют особенности данного класса, например положение компонента на экране, размер и т. д.

Нам осталось рассмотреть еще два класса, которые являются потомками класса TControl.

Первый из этих классов — класс TGraphicControl. Данный класс предназначен для создания визуальных компонентов, которые не являются окнами, т. е. не могут содержать в себе других компонентов и не могут получать фокус ввода. Главное предназначение данного класса — способность отображать графику или текст на компоненте. Примерами потомков класса TGraphicControl могут выступать такие компоненты, как, например, TBevel, TImage. Класс TGraphicControl передает своим потомкам свойство Сanvas, позволяющее получать доступ к поверхности компонента, на которой можно рисовать или писать. Кроме того, класс TGraphicControl передает своим потомкам метод Paint.

Примечание

Подробному изучению графических возможностей Kylix посвящена глава 13 книги.

Второй из этих классов — класс TWidgetControl. Данный класс является базовым классом для всех оконных визуальных компонентов.

Оконный визуальный компонент — это компонент, который:

Примером оконного компонента является TCustomEdit.

Займемся теперь потомками класса TWidgetControl.

Класс TCustomControl — это базовый класс для оконных компонентов, которые имеют свойство Сanvas для рисования. Данный класс используется, в основном, для создания оконных компонентов, которые не соответствуют стандартным окнам.

Класс TFrameControl — это базовый класс для всех оконных компонентов, которые имеют различную окантовку (различные стили бордюра). Данный класс поддерживает 3D-эффекты и имеет специальные свойства для установки различных стилей бордюра.

Класс TScrollingWidget — это базовый класс для всех оконных компонентов, которые имеют полосы прокрутки (скроллинг). Такие компоненты обычно имеют горизонтальную и вертикальную полосы прокрутки содержимого окна. Примерами таких компонентов могут служить TForm и TScrollBox.

И наконец, класс TCustomForm — базовый класс для создания окна на основе желаний программиста. Данный класс объединяет в себе возможности всех своих классов-предков. Таким образом, он поддерживает различные стили бордюра окна, имеет свойство Canvas и может содержать полосы прокрутки.

Hosted by uCoz