Студопедия

КАТЕГОРИИ:


Архитектура-(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; Просмотров: 410; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.