Перед додаванням нового компонента в палітру компонентів необхідно всебічно його перевірити. Для цього треба створити додаток, що використовує компонент і переконатися, що компонент працює так, як треба.
Під час створення форми додатки можна додати в форму компонент, значка якого немає в палітрі компонентів. Однак такий компонент може бути доданий в форму динамічно, т. е. під час роботи програми.
Створюється тестове додаток звичайним чином: спочатку створюється форма додатка, а потім – модуль додатки.
Вид форми програми тестування компонента NkEdit- наведено на рис. 16.2.
Рис. 16.2. Форма додатки Тест компонента NkEdit
Форма містить дві мітки і командну кнопку. Перша мітка призначена для виведення інформаційного повідомлення, друга мітка (на малюнку вона виділена) використовується для виведення числа, введеного в поле редагування. Самого поля редагування компонента NkEdit в формі немає. Цей компонент буде створений динамічно під час роботи програми, але для нього залишено місце над полем мітки.
Після створення форми в модуль програми, автоматично сформований Delphi, необхідно внести такі доповнення:
- У список використовуваних модулів (розділ uses) додати ім’я модуля тестованого компонента (NkEdit).
- В розділ оголошення змінних (var) додати інструкцію оголошення компонента. Тут слід згадати, що компонент є об’єктом, тому оголошення компонента в розділі змінних не забезпечує створення компонента, а тільки генерує покажчик на компонент, отже необхідна інструкція виклику конструктора об’єкта, яка дійсно створює компонент (об’єкт).
- Для форми додатка створити процедуру обробки події oncreate, яка викликом конструктора тестованого компонента створить компонент і встановить значення його властивостей.
У лістингу 16.3 наведено модуль програми тестування компонента NkEdit.
Лістинг 16.3. Тест компонента NkEdit
unit tstNkEdit_; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, NkEdit; // посилання на модуль компонента type TForm1 = Class (TForm) Label1: TLabel; Label2: TLabel; Buttonl: TButton; procedure FormCreate (Sender: TObject); procedure ButtonlClick (Sender: TObject); private { Private declarations} public { Public declarations} end; var Form1: TForm1; myEdit: TnkEdit; // компонент NkEdit implementation {$ R * .dfm) procedure TForm1.FormCreate (Sender: TObject); begin // створимо компонент і помістимо його на форму myEdit : = TNkEdit.Create (self); myEdit.Parent : = Self; myEdit.Left : = 8; myEdit.Top : = 64; end; procedure TForm1.ButtonlClick (Sender: TObject); begin label2. Caption: = FloatToStr (myEdit .Numb); end; end.
Тестовий компонент створюється процедурою обробки події Formcre-ate (Створення форми) за допомогою виклику конструктора компонента, якому в якості параметра передається значення self, що показує, що власником компонента є форма додатка.
Після створення компонента обов’язково повинен бути виконаний важливий крок: властивості Parent необхідно присвоїти значення. В даному випадку тестований компонент знаходиться в формі додатка, тому властивості Parent присвоюється значення self.
На рис. 16.3 наведено вікно програми ест компонента NkEdit під час її роботи, після введення числа в полі редагування і клацнути на кнопці Тест.
Рис. 16.3. Тестування компонента. Поле введення – компонент NkEdit