Программирование с C++ Builder



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



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

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

Наиболее просто выполнить тестирование компонента можно следующим образом. Сначала надо активизировать процесс создания нового приложения, а затем создать форму (добавить и настроить необходимые компоненты) и сохранить приложение в том каталоге, в котором находятся файлы тестируемого компонента.

Вид формы приложения тестирования компонента NkEdit приведен на рис. 6.2Д

Форма содержит две метки. Первая метка обеспечивает вывод общей информации о компоненте; вторая метка (на рисунке она выделена) используется для вывода информации о настройке компонента. Самого компонента NkEdit в форме нет. Он будет создан во время работы программы, в момент ее запуска.

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

1. В текст файла реализации (срр-файл) включить следующую директиву #include "nkedit.cpp".

2. Объявить компонент NkEdit (оператор TNkEdit *NkEdit). Здесь следует вспомнить, что компонент является объектом (точнее ссылкой на объект), поэтому объявление компонента не обеспечивает создание компонента, а только создает указатель на компонент.

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



Рис. 6.2. Форма приложения "Тест компонента NkEdit"


В листинге 6.5 приведен файл реализации приложения тестирования компонента NkEdit.

 Листинг 6.5. Тест компонента NkEdit

#include <vcl.h>
#pragma hdrstop
#include "tk_.h"
#include "nkedit.cpp"
#pragma package(smart_init)
#pragma resource "*.dfm"
TForml *Forml; // форма
TNkEdit *NkEdit; // компонент программиста
// конструктор формы
__£astcall TForml::TForml(TComponent*Owner):TForm(Owner)
{
// создадим и инициализируем компонент
NkEdit NkEdit = new TNkEdit(Forml);
NkEdit->Parent = Forml;
NkEdit->Text = "0";
NkEdit->Left = 10; NkEdit-ХГор = 100;
// настроим компонент
// зададим границы диапазона NkEdit->Min = -100;
NkEdit->Max = 100;
NkEdit->EnableFloat = true;
// разрешен ввод дробных чисел }
// обработка события FormCreate
void __fastcall TForml::FormCreate(TObject *Sender)
{
AnsiString st = "Введите ";
// информация о компоненте if (NkEdit->EnableFloat)
st = st + "дробное";
else st = st + "целое";
st = st + " число от ";
st = st + FloatToStr(NkEdit->Min);
 st = st + " до ";
st = st + FloatToStr(NkEdit->Max);
Label2->Caption = st; }



Рис. 6.З. Тестирование компонента: поле ввода — компонент NkEdit


Тестируемый компонент создает и настраивает конструктор формы. Следует обратить внимание, что свойству Parent созданного компонента обязательно надо присвоить значение. Если этого не сделать, то компонент на форме не появится. Информацию о настройках созданного компонента выводит функция FormCreate. На рис. 6.3 приведен вид окна программы "Тест компонента NkEdit во время ее работы.