Використання елементів управління activex в delphi

  • Що таке елемент керування ActiveX?
  • Необхідність використання ActiveX
  • Внесення елементу управління ActiveX в палітру компонентів
Ця глава присвячена обговоренню використання готових елементів ActiveX, що надаються іншими розробниками. Ми розглянемо, що таке елемент керування ActiveX, в яких випадках його необхідно застосовувати. Навчимося вносити елемент управління ActiveX в палітру компонентів.
Що таке елемент керування ActiveX?
Відповідь на питання, поставлене в заголовку даного розділу, може бути різним. Все залежить від того, з якої точки зору дивитися на ActiveX. З точки зору розробника, елемент управління ActiveX - це щось, що володіє властивостями, подіями і методами (практично як будь-який інший компонент). Розробник на Delphi може не мати уявлення про те, що таке СОМ, і, в той же час, успішно використовувати елементи управління ActiveX в своїх додатках.
З точки зору компонентної моделі об'єктів (СОМ), елемент управління ActiveX є сервер автоматизації, який реалізований у вигляді DLL і виконуваний в одному процесі з вашим додатком. Елементи управління ActiveX допускають візуальне редагування, т. Е. Ви можете змінювати значення їх властивостей, методів, писати обробники подій точно так же, як ви робили це для компонентів з VCL Delphi. Взагалі, слід зауважити, що ідея технології ActiveX була частково реалізована досить давно. Ще в Microsoft Visual Basic для розробки 16-розрядних додатків були використані так звані модулі розширення VBX. Розробники швидко зрозуміли всі переваги даної технології і створили тисячі модулів VBX. Ідея компонентної розробки сподобалася багатьом, і по її принципом стали створювати багато засобів для розробки додатків, до числа яких належить і Delphi.
Дана технологія поступово переросла в 32-розрядну технологію ActiveX.
Необхідність використання ActiveX
Вам могло і не приходити в голову, що ви вже використовували елементи управління ActiveX при написанні своїх додатків. Справа в тому, що багато елементів управління ActiveX, які зареєстровані в системному реєстрі Windows, вже встановлені в палітру компонентів Delphi і зовні нічим не відрізняються від звичайних компонентів Delphi. Ми не будемо зупинятися на тому, які компоненти є елементами управління. Замість цього подивимося, коли виникає необхідність використовувати ActiveX.
Зазвичай така необхідність виникає, коли ви хочете розширити функціональні можливості свого застосування за рахунок можливостей вже зареєстрованих в системі додатків. Наприклад, якщо ви хочете створити власний оглядач Web, вам необов'язково починати писати його з нуля. Адже є чудове ядро ​​для оглядача Web, яке використовується в додатку Microsoft Internet Explorer (SHDOCVW.DLL). Вашим завданням тут є лише підключення даного ядра (яке є елементом управління ActiveX) до свого додатком і робота з ним.
Відзначимо, що в п'ятій версії Delphi в палітру компонентів була додана вкладка Internet, яка надає можливість розробнику створювати додатки на основі ядра Microsoft Internet Explorer.
Внесення елементу управління ActiveX в палітру компонентів
Разом з Delphi поставляється кілька компонентів ActiveX, які були зроблені різними розробниками, але, швидше за все, вам знадобиться самим додавати нові елементи ActiveX в палітру компонентів Delphi.
Установка потрібного елемента управління ActiveX починається з вибору пункту головного меню Component / Import ActiveX Control (Компонент / Імпорт елемента управління ActiveX). З'явиться діалогове вікно (рис. 3.22), що містить відомості про всі елементи управління ActiveX, які були зареєстровані в системному реєстрі Windows.
Розглянемо дане діалогове вікно.
У верхній частині вікна перераховані зареєстровані в системі елементи ActiveX. Список Class names (Імена класів) відображає назви класів, наявних в даному елементі управління. На рис. 3.22 ми бачимо, що у обраного елемента ActiveX є два вбудованих класу TDHTMLEdit і TDHTMLSafe.
Список, що випадає Palette page (Вкладка палітри) служить для вибору вкладки палітри компонентів, на яку буде розміщений обраний елемент ActiveX. За замовчуванням, це вкладка ActiveX.
Наступні два поля для введення Unit dir name (Ім'я директорії для модуля) і Search path (Шлях для пошуку) призначені, відповідно, для вказівки директорії, в якій буде розміщений модуль елемента ActiveX, і шлях пошуку даного модуля для компілятора Delphi.

Використання елементів управління activex в delphi

Мал. 3.22. Діалогове вікно імпорту елементів управління ActiveX
Виберіть той же елемент управління ActiveX, який зображений на рис. 3.22. Якщо такого елемента у вас немає, то візьміть будь-який інший, але в подальшому ми будемо описувати установку саме цього елемента управління.
Після того як ви вибрали цей елемент управління, натисніть кнопку Install (Встановити). З'явиться вікно Install (Установка) (рис. 3.23).

Примітка
Інша кнопка, Create Unit (Створити модуль), дозволяє створити так званий файл уявлення (wrapper). Даний файл - це опис бібліотеки типів, він містить опис всіх методів, подій і властивостей, які знаходяться в елементі управління. Вміст даного файлу написано на мові Object Pascal. Файл складається з двох частин: імені елемента ActiveX і рядки _TLB.PAS. Натиснувши кнопку Create Unit (Створити модуль) ви лише створите даний файл, після чого можете подивитися його вміст. Для продовження установки елемента керування вам потрібно скористатися кнопкою Install (Установка). Дане вікно містить дві вкладки Into existing package (В існуючий пакет) і Into new package (В новий пакет). Ви повинні вибрати, в який пакет хочете включити новий елемент управління.


Примітка
Рекомендується для елементів управління ActiveX створити свій власний пакет. Це дозволить економніше використовувати ресурси. Ми з метою спрощення опису встановлення не будемо створювати новий пакет.

Додамо наш елемент управління в пакет, пропонований Delphi за замовчуванням (dclusrSO.dpk).

Використання елементів управління activex в delphi

Мал. 3.23. Вікно установки елемента керування в пакет
Після натискання кнопки ОК у вікні Install (Установка) Delphi відкомпілює пакет dclusrSO.dpk. В результаті, вміст пакету має виглядати, як представлено на рис. 3.24.

Використання елементів управління activex в delphi

Мал. 3.24. Вміст пакету dclusr5O.dpk після установки нового елемента управління ActiveX
Тепер перейдемо до вкладки ActiveX палітри компонентів і подивимося, які зміни там відбулися (рис. 3.25).


Мал. 3.25. Вміст вкладки ActiveX
Як ви можете бачити, на вкладці з'явилися піктограми двох нових компонентів: DHTMLEdit І DHTMLSafе.
Тепер ви можете розміщувати будь-який з цих компонентів на ваших формах і користуватися ними так само, як і будь-якими іншими компонентами Delphi, Тобто, використовуючи інспектор об'єктів, ви можете встановити значення необхідних властивостей, написати обробники подій, і т. Д.
Для того щоб деінсталювати елемент управління ActiveX, вам потрібно відкрити файл пакета, в який був встановлений ActiveX, і прибрати непотрібні елементи. Після цього необхідно заново відкомпілювати пакет. Ці дії призведуть до видалення елементів з палітри компонентів.

Схожі статті