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