Иллюстрированный самоучитель по Kylix

       

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



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


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

  • определения процедур для загрузки и помещения данных в поток;
  • назначение свойствам экземпляра класса конкретных значений;
  • средства для передачи содержимого одного экземпляра класса другому.

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



  • TFileStream — для работы с файлами;
  • TStringStream — для манипулирования строками в памяти;
  • TMemoryStream — для работы с буфером памяти.

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

  • способность отображаться на палитре компонентов Kylix,
  • способность размещения на форме;
  • способность быть обладателем других компонентов и управлять другими компонентами.

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

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

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

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

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

  • смены значения поля в наборе данных;
  • конвертирования типов данных внутри поля;
  • подтверждения ввода данных в поле;
  • определения того, в каком качестве находятся данные внутри поля: в качестве редактируемых или отображаемых;
  • подсчета результата в полях данных с помощью события OnCalcFields;
  • просмотра значений полей из других наборов данных.

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

  • TQtDialog — базовый класс, инкапсулирующий библиотеку диалогов Qt. Он используется для таких задач, как открытие и сохранение файлов, установка шрифта и цвета, а также для печати;
  • TCustomDialog — используется для решения задач поиска и замены текста в файле.

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

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

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

Примечание

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

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

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

  • может получать фокус ввода во время выполнения приложения;
  • может содержать в себе другие компоненты. Компонент, который содержит в себе другие компоненты, называется родительским (parent). Компонент, содержащийся в другом компоненте, называется дочерним (child);
  • П имеет идентификатор окна (handle). Каждый оконный компонент обрабатывается непосредственно операционной системой, поэтому ему назначается индивидуальный уникальный идентификатор. В CLX свойство Handle является ничем иным, как указателем на Qt-объект, но называется дескриптором для совместимости с кодом VCL Delphi.

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

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

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

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

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

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

Назад
Содержание


Содержание раздела