Смекни!
smekni.com

Разработка визуальных компонентов для среды С++ Builder (стр. 2 из 2)

Рис.2. Иерархия ключевых базовых классов VCL.


Разработка компоненты TRaedit

Процесс разработки компоненты TRaedit проходит через выполнение следующих этапов:

1. Создание модуля для новой компоненты.

2. Наследование производного класса от существующего базового компонентного класса.

3. Добавление нужных свойств, событий и методов.

4. Регистрация компоненты в C++Builder.

5. Отладка.

6. Инсталляция компоненты на Палитру.

7. Сохранение файлов компоненты.

Программный модуль состоит из двух файлов Raedit.срр и Raedit.h, которые компилируются в объектный файл с расширением Raedit.obj. C++Builder использует модули в различных целях - каждая форма и большинство компонент (или их логических групп) имеют свой собственный модуль.

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

class PACKAGE TRaedit : public TCustomEdit

Добавим необходимые свойства в созданный класс.

__property bool TimerEnabled = {read=FTimerEnabled, write=SetTimerEnabled, default = false};

Свойство TimerEnabled отвечает за включение и отключение таймера, а следовательно и за смену текста в текстовом поле.

__property bool Random = {read=FRandom, write=FRandom, default = true};

Свойство Random определяет порядок смены текста: случайно или последовательно.

__property AnsiString Text1 = {read = FText1,write = SetFText1};

__property AnsiString Text2 = {read = FText2, write = SetFText2};

__property AnsiString Text3 = {read = FText3, write = SetFText3};

Свойства Text1-Text3 будут определять дополнительные текстовые поля компоненты.

__property int TimerInterval = {read = FTimerInterval, write = SetTimerInterval, default = 1000};

Свойство TimerInterval устанавливает задержку при смене текста в милесекундах.

__property int TextIndex = {read = FTextIndex, write = SetTextIndex, default = 1};

Свойство TextIndex возвращает номер активной строки или устанавливает строку как активную.

Для регистрации компоненты на палитре компонентов среды разработки C++Builder добавим функцию Register в файл Raedit.cpp:

namespace Raedit

{void __fastcall PACKAGE Register()

{ TComponentClass classes[1] = {__classid(TRaedit)};

RegisterComponents("USATU", classes, 0); }

Инсталляция компоненты

При инсталляции новой компоненты или при выполнении команды Component | Rebuild Library, Библиотека Визуальных Компонент перестраивается, и C++Builder создает временный файл CMPLIB32.CPP исходных текстов VCL. Чтобы сохранить этот файл, с помощью команды Options | Environment | Library необходмо открыть диалог опций и установить флаг Save Library Source Code.

Далее, необходимо произвести компиляцию проекта, что выполняется нажатием кнопки Compile или сочетанием клавиш Alt-F9. После компиляции, выполняется инсталляция компоненты на палитру.

Рис3. Открытый файл проекта компоненты в C++ Builder

Компонента Raedit после установки появится на вкладке USATU:

Рис 4. Палитра компонентов C++ Builder 6

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

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

- активность таймера;

- порядок изменения текста;

- интервал таймера;

- текст по индексу строки;

- текст всех полей.

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

Рис. 6 Форма программы тестирования


Заключение

В данной курсовой работе, были рассмотрены возможности визуальных компонентов среды C++ Builder, а так же разработан новый визуальный компонент Raedit, представляющий из себя текстовое поле с возможностью случайной смены текста содержащегося в нескольких текстовых полях компоненты. Для созданной компоненты были определены свойства, необходимые для нормального её функционирования. Компонента была отлажена, и установлена на палитру. Для проверки работоспособности компоненты было создано тестовое приложение.

Список используемой литературы

1) Теллес, М. BORLAND C++ BUILDER: библиотека программиста .— СПб : Питер, 1998 .— 512с.

2) Архангельский, А. Я. Язык C++ в C++Builder : справочное и методическое пособие / А. Я. Архангельский .— М. : Бином, 2008 .— 942 с.

3) Романов, В.Ю. Программирование на языке C++: Практ. подход .— М. : Компьютер, 1993 .— 157с.

4) Конспект лекций УГАТУ по предмету объектно-ориентированное программирование.