
- •Белорусский государственный университет механико-математический факультет
- •2006 Года, протокол № ___
- •Введение
- •2. Компоненты библиотеки vcl
- •Упражнения
- •4. Поддержка графики и графические компоненты
- •5. Работа с базами данных
- •Упражнения
- •7. Создание собственных компонентов
- •8. Пример разработки простого компонента
- •1. Создание формы тестового приложения
- •2. Создание модуля компонента
- •3. Члены данных, свойства и методы
- •4. Испытание компонента
- •5. Инсталляция компонента
- •6. Проверка работы
- •Содержание
- •220050, Минск, проспект Независимости,4.
- •220030, Минск, ул. Красноармейская, 6.
4. Испытание компонента
С помощью команды File|Save All сохраните все сделанные добавления.
Выбрав вкладку MyCompForm.cpp в окне Редактора кода включите строку #include "MyComp. h" в заголовочный файл формы. Добавьте описание объекта:
MyComp* MyComp1;
Это можно сделать в разделе public в файле MyCompForm.h.
Активизируйте форму Form1 и в окне Инспектора объектов дважды щелкните мышью в графе значений события OnCreate. С помощью Редактора кода введите обработчик этого события в файл MyCompForm.cpp. Следующий код создаст компонент MyComp динамически (определяя ее родителя Parent и помещая в центре родительской формы) во время выполнения тестового приложения:
void__fastcall TForm1::FormCreate(TObject *Sender)
{MyComp1 = new MyComp(this);
MyComp1->Parent = this;
// Центрировать компонент по ширине формы
MyCompl->Left = (Width/2)-(MyCompl->Width/2);
// Центрировать компонент по высоте формы
MyCompl->Top = (Height/2)-(MyCompl->Height/2);
}
Чтобы кнопка управляла индикатором, дважды щелкните мышью в графе значений события OnClick объекта Button1 в окне Инспектора объектов. С помощью Редактора кода введите следующую инструкцию в тело обработчика события:
void __fastcall TForm1::Button1Click(TObject *Sender) (
MyComp1->OnOff = !MyComp1->OnOff;
}
Скомпилируйте и запустите тестовое приложение командой Run|Run.
Если компилятор не выдаст ошибок, то в центре формы тестового приложения появится красный индикатор в состоянии "выключен". Нажав кнопку, вы включите индикатор и он окрасится зеленым цветом.
Осталось создать битовый образ пиктограммы, которой новый компонент будет представлена в Палитре компонентов. Из меню редактора изображений, открывающегося по команде Tools|Image Editor, выберите File|New|Resource File, a затем – Resource|New|Bitmap. В диалоге свойств битового образа установите размеры пиктограммы 24×24 и число цветов VGA (16 Colors). Переименуйте битовый образ компонента (MyComp) по команде Resourse|Rename и дважды щелкните мышью на выбранном имени в древовидном списке ресурсных файлов, чтобы нарисовать подходящую картинку индикатора (например, зеленый кружок). Командой File|Save As сохраните ресурсный файл MyComp.res в рабочем каталоге и закройте Редактор изображений.
5. Инсталляция компонента
Перед тем, как приступить к инсталляции нового компонента на Палитру компонентов, выполните еще раз команду File|Save All.
С помощью команды Component|Install Component откройте диалоговое окно инсталляции компонентов. Нажмите кнопку Add, которая открывает диалоговое окно добавления модуля. Найдите местоположение модуля MyComp.cpp, нажав на кнопку поиска Browse. Нажмите кнопку ОК и ждите окончания перестройки VCL и установки нового компонента на Палитру компонентов.
6. Проверка работы
Выполните команду File|Close All, а затем File|New Application. Поместите новый компонент MyComp и кнопку TButton на форму. Снова определите обработчик события OnClick кнопки управления индикатором:
void __fastcall TForm1::Button1Click(TObject *Sender) {
MyCompl->OnOff = !MyCompl->OnOff;
}
Выполните команду Run|Run и вы увидите, что компонент действительно работает (рис. 27).
Рис. 27. Работа компонента
Вопросы и упражнения
1. Опишите схему разработки собственных компонентов.
2. Как добавить свойства и события в проектируемый компонент ?
3. Как выполнить регистрацию компонента в среде C++Builder ?
4. Как выполняется предварительная отладка созданного компонента ?
5. Как поместить разработанный компонент на Палитру компонентов ?
6. Создайте усовершенствованный ползунок (базовый компонент TTrackBar с вкладки Win32 Палитры компонентов), в котором прорезь ползунка можно изобразить в виде тонкой линии. Добавить свойство, которое позволяет выводить ползунок как в привычной форме, так и с прорезью в виде тонкой линии.
Литература
Шамис, В.А. Borland C++Builder 6. Для профессионалов/В. А. Шамис. СПб.:Питер, 2003
Архангельский, А.Я. Программирование в C++Builder 6/А. Я. Архангельский. М.:ЗАО «Издательство БИНОМ», 2003
Глушаков, С.В. Программирование в среде Borland C++Builder 6/ С. В. Глушаков, В. Н. Зорянский, С. Н. Хоменко. Харьков:Фолио, 2003
Сурков, К.А. Программирование в среде C++Builder/ К. А. Сурков, Д. А. Сурков, А. Н. Вальвачев. Мн.:ООО»Попурри», 1998