Создание заготовки компонента

Итак, вы выбрали класс-предок для вашего компонента. Теперь можно приступать к созданию модуля вашего компонента. Создание модуля (заготовки) для нового компонента можно выполнить путем вызова окна Kylix, которое называется экспертом компонентов (Component Expert). Дан-ное окно можно вызвать путем выбора в главном меню Kylix пункта Component/New Component. При этом появляется окнo, изображенное на рис. 19.1.

Рассмотрим данное окно. Итак, первое поле ввода Ancestor type предназначено для ввода класса — предка для нового компонента. Данное поле ввода содержит в выпадающем списке все зарегистрированные классы библиотеки CLX. Предположим, что мы будем создавать компонент, предком которого является кнопка TButton. Для этогo выберем в выпадающем списке класс TButton. Следующее поле Class Name предназначено для ввода имени нового класса. Пусть в нашем случае это будет новый класс TMyButton. Заметьте, что та умолчанию Kylix заполняет это поле именем класса-предка с добавлением порядкового номера (в нашем случае TButton1). Следующее поле Palette Page показывает, на какой вкладке палитры компонентов будет расположен новый компонент после его регистрации. Оставим в этом поле значение, предлагаемое Kylix по умолчанию Samples. Следующие два поля Unit file name и Search path заполняются средой Kylix самостоятельно, но разработчик может их изменить. Мы не будем этого делать в нашем примере. В результате окно эксперта компонентов должно быть заполнено так, как показано на рис. 19.2.

19-03-1.jpg

Рис. 19.1. Окно эксперта компонентов

19-03-2.jpg

Рис. 19.2. Заполненное окно эксперта компонентов

После заполнения полей данного окна нажимаем кнопку ОК, и Kylix автоматически создаст заготовку модуля вашего компонента. Модуль заготовки для нашего примера представлен в листинге 19.1.

Листинг 19.1.Модуль заготовки нового класса

unit QMyButton; 


interface
uses
SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs, QStdCtrls;
type
TMyButton = class(TButton) private
{ Private declarations } protected
{ Protected declarations } public
{ Public declarations } published
{ Published declarations } end; procedure Register;
implementation
procedure Register; begin
RegisterComponents('Samples', [TMyButton]); end;
end.

Итак, заготовка для нового компонента готова. Она не содержит никаких новых свойств, методов и событий для нового компонента. Нужно отметить, что данный компонент уже имеет все свойства, события и методы, которые определены для класса TButton.

Рассмотрим теперь основные типы методов компонента.

Все методы могут быть одного из нескольких типов: статические (static), виртуальные (virtual), динамические (dynamic) или методы-сообщения (message). По умолчанию методу присваивается статический тип.

Hosted by uCoz