ActiveX компоненти в Centura Team Developer: принципи та технологія застосування, Різне, Програмування, статті

Зміст



Введення


Технології програмування постійно розвиваються і удосконалюються. Безсумнівним досягненням в цьому напрямку є широке поширення взаємозалежних один з одним СОМ і ActiveX технологій. Тому не дивно, що всі великі творці засобів розробки інформаційних систем докладають значних зусиль для того, щоб йти в ногу з часом і інтегрувати нововведення. Цим пояснюється включення до Centura Team Developer 2000 механізмів підтримки СОМ і ActiveX (воно відбулося, якщо точно, ще в попередній версії). Необхідно відзначити, що і в цьому випадку, за доброю традицією, рішення Centura орієнтовані на користувача: досить складні проблеми можуть бути вирішені просто, але, при необхідності, зберігається можливість і перейти на нижній рівень для “прискіпливого” ручного програмування. Я такий підхід називаю “золотий серединою “.


Технології СОМ (Component Object Model) і механізми її адаптації в додатках ActiveX забезпечують дві основні переваги: ​​забезпечення високого ступеня використання типових програмних рішень та впровадження можливостей розподіленої обробки даних. Безсумнівно, можна знайти багато інших достоїнств, але про це мова піде в іншій статті (“COM технології в CTD – Просто і доступно кожному програмісту “того ж автора). Перше виділене властивість дозволяє розглядати програмні компоненти, як незалежні” чорні ящики “інтегровані в операційну середу. За рахунок уніфікованого стандарту інтерфейсу методи включених об’єктів стають доступними в додатках самого різного застосування. Розподілена обробка забезпечує роботу на різних обчислювальних засобах, різних платформах технічних засобів, в різних мережах, включаючи й Інтернет. Інтеграції обчислювальних ресурсів, а, в кінцевому рахунку, і інтелектуальних (програми розробляють все), безсумнівно, забезпечить розвиток інформаційних технологій ще більш високими темпами.


Загальні поняття AX і COM



У дуже спрощеному варіанті включаються компоненти (СОМ) можуть розглядатися як бібліотеки взаємопов’язаних процедур, які використовують уніфікований інтерфейс. Більш точно, слід говорити про об’єкти, які створюються в клієнтських додатках на основі загальних шаблонів, поведінка яких визначається правилами, закладеними в логіці СОМ сервера. У цьому випадку зміна правил поведінки в рамках сервера не призводить до значних змін в клієнтських додатках, причому в максимальному випадку достатньо виконати перегенерації цих додатків, а в мінімальному випадку взагалі нічого не треба робити. Для клієнтської частини зазвичай автоматично породжуються заголовки, описи бібліотек функцій і класів, які, по суті справи, і являють собою AX опису. В залежності від засобів розробки і властивостей включаються об’єктів подібні описи можуть бути представлені у вигляді: бібліотек типів – *. TLB (type library), динамічних бібліотек – *. DLL, об’єктів управління – *. OCX, здійснимих модулів – *. EXE або заголовків файлів бібліотек (для CTD – *. APL). CTD для своєї роботи використовує будь-які з видів бібліотек описів, на основі яких генерується інтерфейсні APL, які і підключається в додаток. Підключення АХ в CTD об’єктів автоматизовано, для чого використовується спеціальна вбудована утиліта – AX Explorer, можливості якої ми розглянемо нижче. Таким чином, головною складовою створюваних і підключаються об’єктів є інтерфейс (Interface), який з позиції об’єкта може бути: входить (Incoming), що служить для відпрацювання методів і функцій всередині об’єкту і вихідним (Outgoing), службовцям для відгуку на події в об’єкті з боку клієнтських додатків.


Для уніфікація доступу до класів і об’єктів передбачаються спеціальні глобальні унікальні ідентифікатори (GUID), які дозволяють звернутися до потрібного об’єкту навіть в таких глобальних мережах, як Інтернет. GUID задаються для: класів (CLSID); для інтерфейсу (IID); для диспетчирування методів-функцій і подій. Останні два ідентифікатора локалізовані всередині сервера об’єктів. Глобальні ідентифікатори об’єктів реєструються в реєстрі операційної системи, що дає можливість клієнтським програмам отримувати доступ до потрібного серверу.


Proxies і stubs



Для взаємодії клієнта і сервера використовуються загальні бібліотеки, які мають бути доступні і клієнта і серверу (СОМ libs), спеціальні класи і об’єкти Proxy для клієнта і Stub для сервера. Ці спеціальні об’єкти забезпечують упаковку і розпаковування интерфейсной інформації в / із переданих по мережі повідомлень. Обмін інформацією у вигляді повідомлень підтримується протоколами RPC (Remote Procedure Call). На малюнку, розташованому нижче приведена спрощена схема такої взаємодії.


Рис. 1 Взаємодія клієнта і сервера.


Механізми RPC використовуються, коли клієнти працюють на одному комп’ютері, і коли вони розташовані на віддалених комп’ютерах.


Підключення AX у додатки CTD



Можливі три види АХ об’єктів, що підключаються до додатків розробляються в середовищі CTD:



Для візуального підключення АХ у додатки використовується спеціальне вікно, в якому необхідно натиснути спеціальну кнопку (червоний Х) і вибрати в списку потрібний об’єкт або елемент керування. Після такого підключення, якщо об’єкти підключені в CTD в програму будуть автоматично додані інтерфейсні APL. На малюнку нижче панель об’єктів показана в стані вибору АХ об’єктів

Рис. 2 Вікно вибору АХ controls і АХ об’єктів.


За допомогою вікна controls можна додавати об’єкти керуючого типу і вбудовувані об’єкти. Крім використання палітри об’єктів для підключення об’єктів можна використовувати пункти меню, контекстне меню, асистент кодування і AX Explorer, який також бере на себе функції початкового підключення АХ класів і компонент.


Можливості CTD по налаштуванню і управлінню AX



Після підключення об’єктів до програми вони стають повноправними елементами програми. Налаштування основних параметрів (розмір, положення, рамки і т.д.) виконується звичайним способом, як і в стандартних об’єктів, за допомогою інспектора атрибутів. Спеціальні параметри настроюються за допомогою спеціальних вікон властивостей, які вбудовані в АХ компоненти. Наприклад, для компоненти Calendar Control викликається вікно налаштування, представлене нижче на малюнку. Воно являє собою сукупність закладок для настройки шрифту, кольору, способу виведення керуючого об’єкта на екран і т.д.


При додаванні об’єкта в додатки доступними стають також: вбудовані класи, нові типи повідомлень, оброблювані додатком (message action), функції виконуються з даним об’єктом (UDF-user define function) і багато іншого.

Рис. 3 Приклад вікна настройки властивостей об’єкта.


Використання AX Explorer



Підключення нових ActiveX об’єктів в середу CTD виконується за допомогою вбудованої утиліти AX Explorer. Він може виконувати наступні функції: імпорту інтерфейсів і генерації класів у вигляді *. APL, перегляду бібліотек об’єктів і контекстної довідки по об’єктах. Нижче на малюнку представлено вікно AX Explorer в режимі перегляду змісту АХ компоненти.

Рис. 4 Вікна перегляду класів і властивостей АХ компонента.


Дане вікно показує вміст бібліотеки Microsoft Word 8.0 Object Library.apl, яка згенерована для MS WORD97. Для керування даним вікном передбачена спеціальна панель управління, яка дублюється контекстним меню. У лівій частині вікна дан список класів, доступних для генерації, в правій частині дано зміст виділеного класу: методи, властивості і події. У нижній частині екрана дано інформаційне вікно, в якому дано опис елементів виділених у верхній частині вікна АХ Explorer.


При генерації можливо задавати такі режими формування интерфейсной APL з новими класами:



Після підключення до програми об’єкти додаються в дерево програми та в OUTLINE. Далі вони можуть редагуватися звичайним способом. Приклад вікна дизайнера CTD з підключеним об’єктом ax1 – типу AX_MSACAL_Calendar, наведено нижче на малюнку.

Рис. 5 Приклад вікна CTD з підключеним АХ об’єктом (АХ1).

Рис. 6 Фрагмент вікна програми з підключеним АХ об’єктом (АХ1).


У правій частині вікна проекту дизайнера CTD показані об’єкти в розкритому вигляді. У розділі обробки користувальницьких повідомлень (message action) показаний спеціальний вид повідомлень – подій, які генерує керуючий елемент “On NewMonth”, воно ініціюється при зміні місяця з допомогою мишки або клавіш. Вище на малюнку наведено фрагмент вікна з включеним об’єктом календаря. Це приклад стандартного додатка описаного в документації і входить до складу стандартних прикладів CTD.


До речі, в правій частині вікна програми наведений інший об’єкт, що є стандартним для CTD і побудований на основі її власного механізму побудови об’єктів управління – QUICK OBJECT.


Основні класи для забезпечення роботи AX в CTD



Для забезпечення роботи механізмів СОМ і АХ в CTD додані спеціальні класи. Вони підключаються при додаванні в програмі спеціального модуля: Automation.apl. При підключенні АХ об’єктів ця бібліотека додається автоматично. Нижче в лівій частині вікна дизайнера CTD показані ці класи. На малюнку в правій частині показано зміст класу інтерфейсу, в якому виділимо: клас інтерфейсу успадковується (Derived From) від класу Object і розкрита згенерувала функція GetCountUser, в якій показано приклад використання інтерфейсної функції INVOKE c передачею і поверненням параметрів.

Рис. 7 Основні класи для АХ підтримки.


Спеціальні класи CTD для АХ програмування мають таке призначення:



Додаткові можливості CTD для підтримки технології АХ



Для забезпечення механізмів OLE в CTD передбачений спеціальний тип об’єктів контейнерні АХ – Container controls (insertable objects). Для динамічної роботи з вбудованими об’єктами передбачені спеціальні функції. Нижче на малюнку наведено приклад вікна програми з включеним в контейнер об’єктом MS WORD.

Рис. 8 Приклад вікна програми з включеним об’єктом Wоrd.


При натисканні кнопки у вікні поля переносяться в документ за встановленими закладок у тексті. Звернемо увагу на те, що забезпечуються повні можливості Wоrd, аж до перевірки орфографії.


Відзначимо, що в CTD передбачена можливість налаштування меню та панелей інструментів для включаються об’єктів. Нові меню і панелі інструментів включаються автоматично при активізації об’єкту.


Функції для вбудованих об’єктів забезпечують динамічний маніпулювання ними і мають наступне призначення:




CTD підтримує два механізми обробки винятків при роботі з АХ об’єктами: стандартний спосіб обробки з використанням єдиного механізму і вікна помилок і користувальницького способу обробки виняткових ситуацій. У разі користувальницької обробки створюються спеціальні об’єкти класу OLEERRORINFO, аналізується коди повернення та аналізується інформація, що поставляється в разі помилки. Якщо AX побудовані за стандартом, то зазначаються коди помилки, довідка помилково, ідентифікатори виконуваних процедур.


Висновок



Звичайно, в одній статті важко описати всі особливості і тонкощі використання АХ і СОМ технологій, але думаю, що ця стаття буде корисна багатьом програмістам і керівникам розробки, для того, щоб зробити висновок про те, наскільки доцільно використовувати дані механізми у власних проектах. На мій погляд, простота реалізації АХ і СОМ технологій в CTD підкуповує, а областей застосування досить багато. Думаю також, що це стане додатковим стимулом для знайомства з ефективними засобами розробки Centura Team Developer, прихильників яких ставати все більше у нас і закордоном.


Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*