Створення модуля компонента

Після того як визначено батьківський клас компонента, слід створити окремий модуль компонента. У цьому модулі повинен оголошуватися новий компонентний клас і процедура його реєстрації в Delphi.

Створити компонентний модуль можна двома способами: вручну або за допомогою експерта створення компонента. Останній спосіб краще, оскільки знижує обсяг ручного кодування. Розглянемо роботу з експертом на прикладі створення модуля для описаного в 5.1.1 компонента FarClock.

1. Виберіть в головному меню Delphi команду Component ► New Component.

2. У поле Ancestor type діалогового вікна потрібно вказати ім'я батьківського класу. Введіть символи TCustomL. Зверніть увагу на динамічну зміну стану поля зі зворотним відліком - експерт пропонує вже відомі класи в якості батьківського. Після введення в поле з'явиться напис:

Зауважте, що в Delphi версій 6 і 7 є дві бібліотеки компонентів: VCL і CLX. Обидві містять майже ідентичні компоненти, але перша призначена для роботи компонентів під управлінням Windows, а друга - під управлінням Linux. Клас TCustomLabel зареєстрований в обох бібліотеках, але стоїть в квадратних дужках ім'я QStdCtrls свідчить про те, що цей клас буде обраний в CLX (модулі цієї бібліотеки мають префікс Q). Якщо залишити поле Ancestor type таким, буде створений компонент для Linux, і спроба розмістити його на формі звичайного проекту (для Windows) викличе повідомлення про помилку. Щоб цього не сталося (у цій книзі розглядаються тільки компоненти для Windows), видаліть посилання [QStdCtrls] з поля Ancestor type.

3. Поле Class name призначене для вказівки імені новостворюваного компонентного класу. Введіть в ньому ім'я TFarClock.

4. У полі Palette page потрібно ввести ім'я тієї вкладки Палітри компонентів Delphi, на якій буде розташовуватися новий компонент. Введіть в ньому ім'я Far - цієї вкладки на палітрі немає, але вона буде створена після реєстрації компонента.

5. Остаточний вигляд вікна експерта показаний на рис. 5.1. Клацніть на кнопці ОК.

В результаті ми отримаємо заготовку для модуля компонента, показану в лістингу 5.2.

Лістинг 5.2 (продовження) type TFarClock = class (TCustomLabel) private protected public

/ Public declarations> published

Створення модуля компонента

Мал. 5,1. Вікно експерта створення нового компонента

Мистецтво створення компонентів Delphi

Схожі статті