Тестирование
компонента
После того как компонент
будет добавлен в пакет, необходимо проверить поведение компонента во время разработки
приложения, использующего этот компонент (работоспособность компонента была
проверена раньше, когда он добавлялся в форму приложения динамически, во время
работы программы).
Можно считать, что
компонент работает правильно, если во время разработки приложения удалось поместить
этот компонент в форму разрабатываемого приложения и, используя окно Object
Inspector, установить, значения свойств компонента, причем как новых, так
и унаследованных от родительского класса.
Работоспособность компонента
NkEdit можно проверить, использовав его, например, в приложении Поездка на
дачу, вид формы которого приведен на рис. 16.9.
Рис. 16.9. Форма
приложения Поездка на дачу (поля ввода-редактирования компонента
NkEdit)
Внешне форма разрабатываемого
приложения почти ничем не отличается от формы приложения Поездка на дачу,
рассмотренного в гл. 6. Однако если выбранным компонентом будет поле ввода,
то в окне Object Inspector указано, что текущим компонентом является
компонент класса TNkEdit, a в списке свойств можно увидеть новое (по сравнению
со списком свойств стандартного компонента Edit) свойство — Numb (рис. 16.10).
Рис. 16.10. Свойство
компонента NkEdit отражено в окне Object Inspector
В листинге 16.4 приведен
модуль приложения Поездка на дачу. Очевидно, что текст программы значительно
меньше первоначального варианта, в котором для ввода данных использовался компонент
Edit.
Листинг 16.4.
Приложение "Поездка на дачу" тест компонента
unit fazenda
;
interface
uses
Windows, Messages, SysUtils,
Variants,
Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls,
NkEdit;
// ссылка на модуль компонента
type
TForm1
= class(TForm)
NkEdit
1: TNkEdit; //расстояние
NkEdit2:
TNkEdit; // цена литра бензина
NkEditS:
TNkEdit; // потребление бензина на 100 км
CheckBox1:
TCheckBox; // True — поездка туда и обратно
Button1: TButton; Label4: TLabel;
Label1: TLabel; Label2: TLabel;
Label3:
TLabel;
//
кнопка Вычислить
//
поле вывода результата расчета
procedure
ButtonlClick(Sender: TObject);
procedure NkEditlKeyPress
(Sender:
TObject; var Key: Char);
procedure NkEdit2KeyPress
(Sender:
TObject; var Key: Char);
procedure NkEditSKeyPress
(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1:
TForm1;
implementation
{$R
*.dfm}
//
нажатие клавиши в поле Расстояние
procedure TForm1.NkEdit1KeyPress
(Sender:
TObject; var Key: Char);
begin
if
Key = Char(VK_RETURN)
then NkEdit2.SetFocus; // переместить курсор в поле Цена
end;
//
нажатие клавиши в поле Цена
procedure TForm1.NkEdit2KeyPress
(Sender:
TObject; var Key: Char);
begin
if
Key = Char(VK_RETURN)
then NkEdit3.SetFocus;
// переместить курсор в поле Потребление
end;
//
нажатие клавиши в поле Потребление
procedure TForm1.NkEdit3KeyPress
(Sender:
TObject; var Key: Char);
begin
if
Key = Char(VK_RETURN)
then Buttonl.SetFocus; //
// сделать активной кнопку Вычислить
end;
//
щелчок на кнопке Вычислить
procedure
TForml.ButtonlClick(Sender: TObject);
var
rast
: real; // расстояние
cena
: real; // цена
potr
: real; // потребление на 100 км
summ
: real; // сумма
mes:
string; begin
rast
:= StrToFloat(NkEdit1.Text);
cena
:= StrToFloat(NkEdit2.Text);
potr
:= StrToFloat(NkEdit3.Text) ;
summ
:= rast / 100 * potr * cena;
if
CheckBoxl.Checked then sunnm := summ * 2;
mes
:= 'Поездка на дачу';
if
CheckBoxl.Checked then mes := mes + ' и обратно';
mes := mes + 'обойдется в '
+
FloatToStrF(summ,ffGeneral,4,2) + ' руб.';
Label4.Caption := mes;
end;
end.