Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций РСОИ.doc
Скачиваний:
20
Добавлен:
04.11.2018
Размер:
1.93 Mб
Скачать

2.6.5. Створення сом-сервера

1. Створення нового застосунка (File->New->Application) – контейнера COM-об’єкту.

2. Додавання в проект COM-об’єкту (File->New->ActiveX->COM Object).

При цьому автоматично до складу проекту додаються:

  • модуль, що містить текст СОМ-об’єкту, точніше текст Со-класу, який закінчується викликом фабрики класів для генерування СОМ-об’єкту;

  • модуль бібліотеки типів, що містить опис СОМ-об'єктів, їхніх інтерфейсів, функцій, властивостей.

Автоматично до складу СОМ-об’єкту (SimpleCOM) включається один інтерфейс з ім'ям I+ім'я_СОМ-об’єкту (ІSimpleCOM), для якого батьківським є інтерфейс ІUnknown. Однак цей інтерфейс ще не містить жодного методу.

3. Створення методів інтерфейсу.

За допомогою редактора бібліотеки типів створюємо необхідні інтерфейси (ISimpleCOM1) та наповнюємо їх функціональними методами (наприклад, linear2x та linear5x).

4. За допомогою кнопки Refresh редактора бібліотеки типів здійснюємо генерування скелетів коду для методів, визначених розробником.

5. Здійснюємо реалізацію методів, визначених в інтерфейсі.

6. Виконуємо компіляцію проекту.

Ланцюжок: Project -> Compile.

7. Здійснюємо реєстрацію СОМ-сервера.

Для реєстрації СОМ-сервера достатньо викликати на виконання СОМ-сервер.

2.6.6. Створення сом-клієнта

Для створення СОМ-клієнта необхідно виконати таку послідовність дій:

1) створити новий проект;

2) додати в проект клієнта файл бібліотеки типів;

3) оголосити інтерфейси;

У секції Public форми MainClient оголошуємо дві змінні, типи яких – інтерфейси, що містяться в СОМ-об’єкті:

Interface1:ISimpleCom;5

Interface2:ISimpleCom2;

4) створити СОМ-об’єкт із клієнтського застосунка.

Створення СОМ-об’єкту досягається за рахунок звернення до фабрики класу СОМ-об’єкту (метод Create Со-класу), наприклад, у процедурі обробки події OnActivate головної форми клієнтського застосунка.

Метод повертає вказівник на інтерфейс за замовчуванням. Для отримання вказівника на другий інтерфейс використовуємо відповідний метод базового інтерфейсу

QueryInterface (<ім'я_інтерфейсу>, <змінна інтерфейсного типу>);

procedure TForm1.FormActivate(Sender: TObject);

begin

Interface1 := CoSimpleCom.Create;

Interface1.QueryInterface(ISimpleCom2, Interface2) ;

end;

5. Використати методи інтерфейсів для отримання необхідних програмі-клієнту результатів. Наприклад:

procedure TForm1.Button1Click(Sender: TObject);

begin

label2.Caption:=

IntToStr(Interface1.linear2x(SpinEdit1.Value));

label4.Caption:=

IntToStr(Interface1.linear5x(SpinEdit1.Value));

end;

Контрольні запитання та завдання:

  1. Що таке сервер СОМ, назвіть види серверів?

  2. Охарактеризуйте наявні засоби організації потокової взаємодії клієнта і сервера.

  3. Що визначає параметр Instancing при створені СОМ-об’єкту?

  4. Які значення може приймати параметр Instancing?

  5. Опишіть методику формування екземпляра зовнішнього СОМ-об’єкту?

  6. Опишіть процес створення клієнт-серверної системи на основі зовнішнього базового СОМ-об’єкту?

2.7. Автоматизація

На основі моделі COM розроблені і використовуються багато технологій. Одна з них – автоматизація (Automation).

Ця технологія забезпечує використання функцій одних застосунків з інших застосунків. Взаємодія між ними здійснюється за рахунок використання набору спеціально створених інтерфейсів. Основним є інтерфейс IDispatch.

Автоматизацію підтримують такі широко розповсюджені програми, як Word, Excel, Internet Explorer. Наприклад, будь-яка програма-користувач, що має інформацію про функції, надані інтерфейсом автоматизації MS Word, одержує доступ до великих можливостей редагування текстів.

З погляду програміста створення застосунків, що використовують автоматизацію, мало чим відрізняється від методики для базових об’єктів COM. У цьому розділі розглядаються особливості програмування в Delphi з використанням автоматизації. Серед них виділимо такі питання: