Проверка компонента
После того как компонент будет добавлен в пакет и его значок появится в палитре компонентов, необходимо проверить поведение компонента во время разработки приложения, использующего этот компонент (работоспособность компонента была проверена раньше, когда компонент добавлялся в форму приложения динамически, во время работы программы).
Можно считать, что компонент работает правильно, если во время разработки приложения удалось поместить этот компонент в форму разрабатываемого приложения и, используя окно 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) + "А"; }