КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Пример разработки простого компонента
Endif
// Файл TestForm.cpp модуля формы #include <vcl.h> #pragma hdrstop #include "TestForm.h" #pragma package(smart_init) pragma resource "*.dfm" TForm1 *Forml; __fastcall TForm1::TForm1(TComponent* Owner): TForm(Owner) { MyComponent1 = new TMyComponent(this); // 4 MyComponent1->Parent = this; // 5 MyComponentl->Left = 12; // 6 }
Для отладки компонента необходимо выполнить компиляцию и запустить тестовое приложение. Если поведение компонента соответствует предъявляемым к ему требованиям, то можно перейти к его установке на Палитру компонентов. 7.6. Инсталляция компонента на Палитру компонентов Чтобы добавить к VCL компонент, необходимо выполнить следующие шаги: 1) С помощью командыComponent|Install Componentоткрывается диалоговое окно инсталляции компонент. Можно выбрать вкладку Into New Package, если компонент включается в новый пакет, или вкладку Into existing package, если используется существующий пакет. 2) Вводится имя модуля компонента MyComp.cpp и путь к нему в поле Unit file name. Далее вводится имя нового пакета (совпадающее с названием вкладки Палитры компонентов, на которую устанавливается новый компонент) в поле Package file name, а его краткое описание – в поле Package description. Щелчок на кнопке ОК закрывает диалоговое окно установки. Добавление компонента в существующий пакет выполняется аналогично. 3) С текущим содержимым пакета можно ознакомиться вь открывшемся окне Менеджера пакетов. Все файлы, составляющие рассматриваемый пакет, будут созданы (или перестроены), и новый компонент установлен на ту вкладку Палитры компонентов, которая была задана в качестве одного из параметров функции регистрации Register. C++Builder автоматически включает в проект системные файлы периода выполнения (с расширениями.bpi,.res), необходимые для сборки пакета. 4) Выбирается команда Install в Менеджере пакетов. В результате выполняется компиляция, перестройка VCL и установка нового компонента на Палитру компонентов. 5) Командой Component|Install Packages или Project|Options открывается список установленных пакетов. По щелчку на кнопке Components можно увидеть список всех компонентов, включенных в выбранный пакет. Если нужно, чтобы текущая конфигурация пакетов принималась по умолчанию в каждом новом создаваемом проекте, то необходимо установить флажок Default. Чтобы удалить компонент из VCL, необходимо выполнить следующие действия: 1) Выполнить командуComponent|Install Component, которая открывает диалоговое окно установки компонентов. 2) Найти удаляемый компонентный класс в списке Component classes выбранной группы Библиотеки и нажать кнопкуRemove. 3) Нажать кнопку ОК. Библиотека будет перестроена и компонент удален из Палитры компонентов. Чтобы перестроить Палитру компонентов, необходимо выполнить следующие действия: 1) Открыть диалог установки опций Палитры компонентов с помощью команд Component|Configure Palette илиOptions|Environment|Palette. 2) Нажать кнопкуAdd и выбрать имя для новой вкладки. Имя добавленной вкладки появится внизу списка Pages названий вкладок. 3) Перетащить мышью выбранный компонент в списке Components на нужную вкладку списка Pages. 4) Нажать кнопку ОК. Библиотека и Палитра компонентов будут перестроены. 7.7. Сохранение файлов нового компонента После окончания процесса разработки, компонент будет представлен следующими файлами: объектный файл результата компиляции MyComp.obj; файлы модуля компонента (MyComp.h, MyComp.cpp); файлы пакета с именем имя_пакета и расширениями bpl, bpk, lib, bpi, cpp, res; файл пиктограммы компонента для Палитры компонентов MyComp.dcr; файл формы MyComp.dfm, если компонент использует форму; желательно создать и сохранить контекстно-справочный файл MyComp.hlp. По умолчанию C++Builder сохраняет компонентный пакетный файл с расширением bpl в каталоге \...\ProgramFiles\Borland\CBuilder6\ Projects\Bpl, а библиотечные файлы с расширениями lib и bpi – в каталоге \...\ProgramFiles\Borland\CBuilder6\Projects\Lib. Используя новый компонент в дальнейшем, нельзя забывать проверять вкладку Directories|Conditionals диалогового окна команды Project|Options, где должен быть указан путь к библиотечным каталогам. Перед тем, как приступить к разработке компонент, необходимо знать, что он должен делать и как будет реализовано его оригинальное поведение. Рассмотрим пример компонента, моделирующего бинарный индикатор, который меняет цвет при изменении состояния. Некоторое свойство компонента будет хранить его текущее состояние (true – индикатор включен, и false – в противном случае). Мы уже знаем, что желательно выбрать для наследования наиболее близкий в иерархии VCL базовый компонентный класс. Очевидно, что индикатор представляет собой графический компонент семейства TGraphicControl. Поскольку мы разрабатываем простой компонент, пусть он будет иметь форму круга, а не более хитроумный образ. Компонент TShape из вкладки Палитры компонентов Additional выглядит ближайшим родственным компонентом. При внимательном рассмотрении Tshape мы видим, что он имеет больше свойств и событий, чем нам требуется. Все что мы хотим изменить при наследовании от TShape – это форму индикатора и цвет кисти при его переключении. Перейдем к фактической разработке компонента:
Дата добавления: 2014-12-27; Просмотров: 432; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |