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



Проверка компонента



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

Можно считать, что компонент работает правильно, если во время разработки приложения удалось поместить этот компонент в форму разрабатываемого приложения и, используя окно Object Inspector, установить значения свойств компонента, причем как новых, так и унаследованных от родительского класса.

Работоспособность компонента NkEdit можно проверить, использовав его, например, в приложении "Сила тока", вид формы которого приведен на рис. 6.12.



Рис. 6.12. Форма приложения "Сила тока" (поля ввода-редактирования компоненты NkEdit)


Внешне форма разрабатываемого приложения почти ничем не отличается от формы приложения "Сила тока", рассмотренного в гл. 2. Однако если выбрать поле ввода, то в окне Object Inspector будет указано, что текущим компонентом является компонент класса TNkEdit, а в списке свойств можно будет увидеть свойства, которых нет у стандартного компонента Edit (рис. 6.13).



Рис. 6.13. Значения свойств EnableFloat, Max и Min компонента NkEdit можно задать в окне Object Inspector


В листинге 6.6 приведен модуль приложения "Сила тока". Здесь надо обратить внимание на следующее. Первое. В программе нет кода, обеспечивающего фильтрацию символов, вводимых в поле редактирования. Тем не менее во время работы программы пользователь может ввести в поле редактирования только положительное число. Второе. В программе не используется функция strToFloat. Число, которое соответствует введенной в поле редактирования строки символов, получается путем обращения к свойству Numb.

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

Листинг 6.6."Сила тока"

// нажатие клавиши в поле Напряжение
void __fastcall TForml::NkEditlKeyPress(TObject *Sender, char SKey)
{
if ( Key == VK_RETORN)
NkEdit2->SetFocus(); }
// нажатие клавиши в поле Сопротивление
void __fastcall TForml::NkEdit2KeyPress(TObject *Sender, char &Key)
{
if ( Key == VK_RETORN)
Buttonl->SetFocus(); }
// нажатие кнопки Вычислить
void __fastcall TForml::ButtonlClick(TObject *Sender)
{
float u; // напряжение
float r; // сопротивление
float i; // ток
// получить исходные данные из полей ввода
 u = NkEditl->Numb;
r = NkEdit2->Nuinb;
if ( r == 0) {
ShowMessage("Сопротивление не должно быть равно нулю");
return; }
// вычислить ток i = u/r;
// вывести результат Label4->Caption = "Ток : " +
FloatToStrF(i,ffGeneral,7,3) + "А";
}