Тестирование компонента
В листинге 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.