Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВВЕДЕНИЕ В ОБЪЕКТНО Ориентированное программиро...docx
Скачиваний:
19
Добавлен:
29.08.2019
Размер:
1.01 Mб
Скачать

Создание модуля

В состав модуля компонента помимо описания и реализации класса должна входить процедура регистрации Register.

Существуют два способа создания модуля для нового компонента:

· используя Component Wizard (New/Component),

· создание компонента «вручную».

При создании компонента с помощью мастера упрощается начальная стадия создания. В процессе диалога с мастером создания компонентов программист задает следующее:

· класс, от которого компонент порождается,

· имя класса нового компонента — причем только одного,

· имя страницы палитры компонентов, на которой компонент будет размещен,

· имя модуля, в котором будет описан компонент,

· путь к этому модулю,

· имя пакета, в котором будет размещен компонент.

На основе этих данных мастер создает шаблон модуля для компонента. В его состав будут входить заготовка для класса и процедура регистрации компонента, например:

Процедура RegisterComponents регистрирует указанный визуальный компонент (в пример TMyControl) на указанной странице компонентов (в примере это страница Samples). При создании компонента вручную первым шагом создается новый Unit. Далее в нем описывается класс компонента и процедура регистрации. В одном модуле можно разместить несколько компонентов. Также можно добавить компоненты в модуль, созданный автоматически. Процедура RegisterComponents вызываетется один раз для всех компонентов, регистрируемых на одной страницы компонентов. В этом вызове указывается имя страницы и все размещаемые на ней компоненты. Процедура регистрации для случав нескольких компонентов, будет выглядеть, например, следующим образом:

Создание описания и реализации класса для компонента

Создание описания и реализации класса для компонента включает в себя создание перекрытие или переопределение свойств, событий и методов, которые должны обеспечить функциональность компонента, его отображение на экране. Подробно это рассматривается в следующем разделе.

Тестирование неустановленного компонента

В процессе разработки компонента необходимо провести его тестирование, не помещая его на палитру компонентов. Для этого необходимо выполнить следующие действия:

1. Добавить в проект модуль, содержащий компонент;

2. Добавить имя модуля, в котором находится описание компонента, в раздел Uses той формы, где планируется его использование;

3. Добавить поле типа класс нового компонента в раздел public формы;

4. Установить процедуру обработки события OnCreate для формы в котором будет написан код создания и инициализации компонента;

5. Создать компонент в процедуре обработки данного события. В качестве параметра конструктора указывается Self — указатель на объект, который владеет данным компонентом;

6. Установить свойство Parent (указатель на объект, который осуществляет визуальный контроль за компонентом) на форму;

7. Установить остальные свойства компонента.

Таким образом компонент при тестировании без установки создается как обычный класс.

Создание графического изображения для компонента

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

Поскольку картинка для палитры не нужна во время исполнения, нет необходимости прикомпилировать ее к компоненту. Вместо этого создается файл ресурсов для компонента, причем он должен иметь то же имя, что и модуль и расширением .DCR. (dynamic component resource). Действия: Tools/Image Editor; File/New/Component Resours File. Внутри создается по одному изображению на каждый компонент. Каждое изображение представляет собой квадрат 24x24 пиксела. Действия Resours/New/Bitmap. Изображения должны иметь имена, соответствующие именам классов компонентов. Файл ресурсов должен быть помещен в тот же каталог, что и откомпилированные файлы компонента, что позволит Delphi найти его при инсталляции компонента на панели компонентов. Связывание изображения и компонента происходит автоматически по соответствию имен. Например, при создании компонента с именем TMyControl в модуле ToolBox, файл ресурсов будет называться TOOLBOX.DCR. и содержать изображение с именем TMYCONTROL.