Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Основные этапы создания компонент




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

1. Выбор базового класса.

2. Создание модуля компонента.

3. Тестирование компонента.

4. Добавление компонента в пакет компонентов.

Рассмотрим процесс создания компонента программиста на примере разработки компонента NkEdit, предназначенного для ввода и редактирования дробного числа.

Выбор базового класса

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

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

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

После этого можно приступить к созданию модуля компонента.

    Для того чтобы создать модуль компонента, необходимо из меню Component выбрать команду New Component  и в поля открывшегося диалогового окна New Component (рис. 16.1) ввести информацию о создаваемом компоненте.

Рис. 2.5 Диалоговое окно New Component

    Поле Ancestor type должно содержать базовый тип для создаваемого компонента. Базовый тип компонента можно задать непосредственным вводом имени типа или выбором из раскрывающегося списка. Для разрабатываемого компонента базовым компонентом является стандартный компонент Edit (после ввода-редактирования). Поэтому базовым типом для типа разрабатываемого компонента является тип TEdit.                                           В полк Class Name необходимо ввести имя класса разрабатываемого компонента, например TNkEdit. Вспомните, что в Delphi имена типов должны начинаться с буквой т.                                                                           В поле Palette Page нужно ввести имя вкладки палитры компонентов, на которую после создания компонента будет добавлен его значок. Название вкладки вкладки палитры компонентов можно выбрать из раскрывающего списка. Если в поле Palette Page ввести имя еще не существующей вкладки палитры компонентов, то непосредственно перед добавлением компонента вкладка с указанным именем будет создана.                                               В поле Unit, file name находится автоматически сформированное имя файл модуля создаваемого компонента. Delphi присваивает модулю компонента имя, которое совпадает с именем типа компонента, но без буквы Т. Щелкнув на кнопке с тремя точками, можно выбрать каталог, в котором должен быть сохранен модуль компонента.                                                             После нажатия кнопки ОК к текущему проекту добавляется сформированный Delphi-модуль, представляющий собой заготовку (шаблон) модуля компонента. Текст этого модуля приведен в листинге 16.1.                 В сформированное Delphi объявление класса нового компонента нужно внести дополнения: объявить свойство, поле данных этого свойства, функцию доступа к полю данных, процедуру установки значения поля данных, конструктор и деструктор. Если на некоторые события компонента должен реагировать не так, как базовый, то в объявление класса нужно поместить описание соответствующих процедур обработки событий.

    3. Тестирование и установка компонента

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

1. В список используемых модулей (раздел uses) добавить имя модуля тестируемого компонента (NkEdit).

2. В разделе объявления переменных (var) добавить инструкцию объявления компонента. Здесь следует вспомнить, что компонент является объектом, поэтому объектом, поэтому объявление компонента, а только генерирует указатель на компонент, следовательно, необходима инструкция вызова конструктора объекта, которая действительно создает компонент (объект).

3. Для формы приложения создать процедуру обработки события oncreate, которая вызовом конструктор тестируемого компонента создаст компонент и установит значение его свойств.

После создания компонента обязательно должен быть выполнен важный шаг: свойству Parent необходимо присвоить значение. В данном случае тестируемый компонент находится в форме приложения, поэтому свойству Parent присваивается значение self.

    Для того чтобы значок компонента появился в палитре компонентов, компонент должен быть добавлен в один из пакетов (Packages) компонентов.

    Delphi. Пакет компонентов - это файл с расширением dpk (Delphi Package File). Например, компоненты, создаваемые программистом, находятся в пакете Dclusr70.dpk.

    Во время добавления компонента в пакет Delphi использует модуль компонента и файл ресурсов компонента, в котором должен находится битовый образ значка компонента. Имя файла ресурсов компонента должно обязательно совпадать с именем файла модуля компонента. Файл ресурсов имеет расширение dcr (Dynamic Component Resource). Битовый образ, находящийся внутри файла ресурсов, должен иметь имя, совпадающее с именем классов компонента.

    4. Ресурсы компонента

    Файл ресурсов компонента можно создать при помощи утилиты  Image Editor, которая запускается выбором из меню Tools команды Image Editor.

    Для того чтобы создать новый файл ресурса компонента, нужно из меню File выбрать команду New и из появившегося списка выбрать тип создаваемого файла - Component Resourсe File.

    В результате открывается окно файла ресурсов Untitled1.dcr, от меню диалогового окна Image Editor появляется новый пункт - Resourсe. Теперь нужно из меню Resourсe выбрать команду New/Bitmap и в открывшемся окне Bitmap Properties установить характеристики битового образа значка компонента: Size - 24x24 пикселя, Colors - 16.

    В результате этих действий в создаваемый файл ресурсов компонента будет добавлен новый ресурс - битовый образ с именем Bitmap1. Двойной щелчок на имени ресурса (Bitmap1) раскрывает окно редактора битового образа, которым можно нарисовать нужную картинку.

    Изображение в окне графического редактора можно увеличить. Для этого необходимо выбрать команду Zoom In меню View.

    Следует обратить внимание, что цвет правой нижней точки рисунка определяет "прозрачный" цвет. Элементы значка компонента, закрашенные этим цветом, на палитре компонентов Delphi не видны.

    Перед тем, как сохранить файл ресурсов компонента, битовому образу надо присвоить имя. Имя должно совпадать с именем класса компонента. Что бы задать имя битового образа, необходимо щелкнуть правой кнопкой мыши на имени битового образа (Bitmap1), выбрать в появившемся контекстном меню команда Rename и ввести новое имя. Созданный файл ресурсов компонента нужно схоронить в том каталоге, в котором находится файл модуля компонента. Для этого надо из меню File выбрать команду  Save. Имя файла ресурсов компонента (Edit.dcr) должно совпадать с именем модуля компонента (Edit.pas), а имя битового образа (Edit) - с именем класса компонента (Edit).

Удаление компонента       

Иногда возникает необходимость удалить компонент из пакета. Сделать это можно при помощи редактора пакет компонентов.                 Для того чтобы запустить редактор пакета компонентов, надо из меню Component выбрать команду Install Packages, в открывшемся диалоговом окне Project Options из списка Design Packages выбрать нужный пакет и нажать кнопку Edit.

В открывшемся окне Confirm в ответ на запрос: cancel this dialog box and open...(Закрыть этот диалог и открыть пакет...) надо нажать кнопку Yes.       В результате открывается окно редактора пакет Package, в котором в списке Contains (Содержимое) перечислены компоненты пакеты.

Для того чтобы удалить компонент из пакета, необходимо нажать кнопку Remove. В открывшемся диалоговом окне Remove From Project (рис. 16.14) следует выбрать удаляемый компонент и нажать кнопку ОК.

После удаления компонента из пакета нужно обязательно выполнить перекомпиляцию пакета. Для этого необходимо в окне редактора пакета нажать кнопку Compile.После перекомпиляции пакета Delphi информирует о том, что удалённый компонент больше не зарегистрирован.










Последнее изменение этой страницы: 2018-04-12; просмотров: 406.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...