Skip to Content

Тестирование компонента

Тестирование компонента

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

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

  1. unit fazenda ;
  2. interface
  3.  
  4. uses
  5. Windows, Messages, SysUtils,
  6. Variants, Classes, Graphics, Controls,
  7. Forms, Dialogs, StdCtrls,
  8.  
  9. NkEdit; // ссылка на модуль компонента
  10.  
  11. type
  12.  
  13. TForm1 = class(TForm)
  14.  
  15. NkEdit 1: TNkEdit; //расстояние
  16. NkEdit2: TNkEdit; // цена литра бензина
  17. NkEditS: TNkEdit; // потребление бензина на 100 км
  18. CheckBox1: TCheckBox; // True — поездка туда и обратно
  19. Button1: TButton;
  20. Label4: TLabel;
  21. Label1: TLabel;
  22. Label2: TLabel;
  23. Label3: TLabel;
  24.  
  25. // кнопка Вычислить
  26. // поле вывода результата расчета
  27.  
  28. procedure ButtonlClick(Sender: TObject);
  29. procedure NkEditlKeyPress
  30. (Sender: TObject; var Key: Char);
  31. procedure NkEdit2KeyPress
  32. (Sender: TObject; var Key: Char);
  33. procedure NkEditSKeyPress
  34. (Sender: TObject; var Key: Char);
  35.  
  36. private
  37. { Private declarations }
  38. public
  39. { Public declarations }
  40. end;
  41.  
  42. var
  43. Form1: TForm1;
  44.  
  45. implementation
  46. {$R *.dfm}
  47.  
  48. // нажатие клавиши в поле Расстояние
  49.  
  50. procedure TForm1.NkEdit1KeyPress
  51. (Sender: TObject; var Key: Char);
  52. begin
  53.  
  54. if Key = Char(VK_RETURN) then
  55. NkEdit2.SetFocus; // переместить курсор в поле Цена
  56.  
  57. end;
  58.  
  59. // нажатие клавиши в поле Цена
  60.  
  61. procedure TForm1.NkEdit2KeyPress(Sender: TObject; var Key: Char);
  62. begin
  63.  
  64. if Key = Char(VK_RETURN) then
  65. NkEdit3.SetFocus;
  66.  
  67. // переместить курсор в поле Потребление
  68.  
  69. end;
  70.  
  71. // нажатие клавиши в поле Потребление
  72.  
  73. procedure TForm1.NkEdit3KeyPress(Sender: TObject; var Key: Char);
  74. begin
  75.  
  76. if Key = Char(VK_RETURN) then
  77. Buttonl.SetFocus;
  78.  
  79. // сделать активной кнопку Вычислить
  80.  
  81. end;
  82.  
  83. // щелчок на кнопке Вычислить
  84.  
  85. procedure TForml.ButtonlClick(Sender: TObject);
  86. var
  87.  
  88. rast : real; // расстояние
  89. cena : real; // цена
  90. potr : real; // потребление на 100 км
  91. summ : real; // сумма
  92. mes: string;
  93.  
  94. begin
  95.  
  96. rast := StrToFloat(NkEdit1.Text);
  97. cena := StrToFloat(NkEdit2.Text);
  98. potr := StrToFloat(NkEdit3.Text) ;
  99. summ := rast / 100 * potr * cena;
  100.  
  101. if CheckBoxl.Checked then
  102. sunnm := summ * 2;
  103.  
  104. mes := 'Поездка на дачу';
  105.  
  106. if CheckBoxl.Checked then
  107. mes := mes + ' и обратно';
  108.  
  109. mes := mes + 'обойдется в ' + FloatToStrF(summ,ffGeneral,4,2) + ' руб.';
  110. Label4.Caption := mes;
  111.  
  112. end;
  113.  
  114. end.



Delphi Для профессионалов &1   |    Delphi Для профессионалов &2   |    Delphi Для профессионалов &3   |    Иллюстрированный самоучитель &1   |    Иллюстрированный самоучитель &2