русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Динамічний обмін даними (що це?, термінологія, способи виконання).


Дата добавления: 2015-07-09; просмотров: 1197; Нарушение авторских прав


DDE - давній і прижився протокол обміну даними між різними додатками, що з'явився ще на зорі ери Windows. З тих пір на його базі був створений інтерфейс OLE, а в 32-розрядному API Windows з'явилися й інші методи міжпрограмного взаємодії. Але ніша, яку займає DDE, залишилася незмінною - це оперативна передача та синхронізація даних в додатках. Програми, що використовують DDE, поділяються на дві категорії - клієнти і сервери. Обидва учасники процесу здійснюють контакти (conversations) з певних тем (topic), при цьому в рамках теми проводиться обмін елементами даних (items). Встановлює контакт клієнт, який надсилає запит, що містить імена контакту і теми. Після встановлення контакту всяка зміна елемента даних на сервері передається даними клієнта.
Розробники підсистеми DDE в Delphi, вірні ідеології створення VCL, звели інтерфейс цього протоколу до чотирьох компонентів - двом для сервера і двом для клієнта. На рівні підтримки контакту лежать компоненти TDDEServerConv і TDDEClientConv. Перший грає пасивну роль - він тільки вказує ім'я однієї з підтримуваних сервером тем. Всі операції по встановленню і розриву контакту здійснює з програми-клієнта другий компонент. За допомогою одного контакту можуть бути пов'язані і синхронізовані кілька пар елементів даних. Для їх опису призначені компоненти TDDEServerItem і TDDEClientItem. Кожен з них під час роботи повинен вказувати на контакт, до якого він прив'язаний. Крім того, у складі обох є властивості, що містять якийсь текст. При встановленому контакті їх вміст синхронізується. Крім цього в модулі DDEMAN описаний і п'ятий компонент, який управляє всіма зв'язками DDE. Його розгляд виходить за рамки книги.

71. Особливості проекту DDE Dialog. Надсилання даних серверові.

DDE дає можливість перейти через рамки програми і взаємодіяти з іншими програмами та системами Windows.



Dynamic Data Exchange отримало своє ім'я тому, що дозволяє двом додаткам обмінюватися даними (текстовими, через глобальну пам'ять) динамічно під час виконання. Зв'язок між двома програмами можна встановити таким чином, що зміни в одному додатку будуть відображатися в другому. Наприклад, якщо Ви змінюєте число в електронній таблиці, то в другому додатку дані оновляться автоматично і відобразять зміни. Крім того, за допомогою DDE можна з свого застосування керувати іншими додатками такими, як Word for Windows, Report Smith, Excel та ін

Додаток, яка отримує дані з іншої програми по DDE і / або управляє іншим додатком з допомогою команд через DDE є DDE-клієнтом. У цьому випадку другий додаток є DDE-сервером. Одне і те-ж додаток може бути одночасно і сервером, і клієнтом (наприклад, MicroSoft Word).

Для побудові DDE-сервера в Delphi є об'єкта, розташовані на сторінці System Палітри Компонент - TDdeServerConv і TDdeServerItem. Зазвичай у проекті використовується один об'єкт TDdeServerConv і один або більше TDdeServerItem.

Для побудови DDE-клієнта в Delphi використовуються два компоненти TDDEClientConv і TDDEClientItem. Аналогічно серверу, в програмі зазвичай використовується один об'єкт TDDEClientConv і один і більше пов'язаних з ним TDDEClientItem.

 

72. Взаємодія з сервером (WinWord) як з com-об’єктом (Variant, CreateOleObject,…).

Для створення сервера автоматизації використовується функція CreateOleObject, описана в модулі Comobj наступним чином: function CreateOleObject (const ClassName: string): IDispatch;
Функція видає посилання на інтерфейс IDispatch об'єкта, зареєстрованого в реєстрі Windows під ім'ям ClassName. Для визначення назви класу слід вивчити документацію до програмного продукту, що надає сервер автоматизації. Для програми Microsoft Word таким ім'ям є «Word.Application», а для Microsoft Excel - «Excel.Application». Аналогічні назви класів мають і інші компоненти Microsoft Office. Якщо сервер автоматизації вже запущений, то посилання на нього можна отримати за допомогою функції GetActiveOleObject: function GetActiveOleObject (const ClassName: string): IDispatch;
Якщо при виклику методу GetActiveOleObject система не може виявити запущену версію заданого сервера автоматизації, то буде порушена виняткова ситуація класу EOleError. Посилання, які повертають функції GreateOleObject і GetActiveOleObject, слід зберігати в змінних для подальшого доступу до створеного або отриманого об'єкта. Незважаючи на те, що тип посилання визначений як IDispatch, змінна, в яку це посилання зберігається, повинна мати тип Variant. Це пов'язано з тим, що з даної змінної будуть викликатися методи сервера автоматизації, які не описані в інтерфейсі IDispatch.
Var Object: Variant; Object: = CreateOleObject ('Word.Application'); Використання екземпляра сервера автоматизації, тобто виклик його методів, здійснюється з допомогою конструкцій, звичайних для виклику методів у Delphi: <Посилання на сервер>. <Назва методу> (<Список параметрів>);
Однак механізм, який використовується для реального виклику, істотно відрізняється від виклику методів Delphi-класів. Назва методу і список його параметрів запаковуються у спеціальну структуру, яка потім передається методу invoke СОМ-об'єкту через посилання, отримане при виконанні функції CreateOleObject. Метод invoke визначає, який саме його метод повинен бути викликаний, виконує його, запаковує результат і повертає його в викликала програму. Об'єкти автоматизації підтримують також і доступ до властивостей через спеціальним чином описані методи. Для руйнування структур даних, пов'язаних з використанням СОМ-об'єкт в програмі, слід присвоїти посиланням на нього значення Unassigned. Дана операція не закриває запущений сервер автоматизації:Var Object: Variant; Object: = CreateOleObject ('Word.Application'); Використання екземпляра сервера автоматизації, здійснюється з допомогою конструкцій, звичайних для виклику методів у Delphi: <Посилання на сервер>. <Назва методу> (<Список параметрів>); Назва методу і список його параметрів запаковуються у спеціальну структуру, яка потім передається методу invoke СОМ-об'єкту через посилання, отримане при виконанні функції CreateOleObject.

 



<== предыдущая лекция | следующая лекция ==>
Проблеми синхронізації потоків. | Ієрархія та призначення базових класів компонент. Інтерфейс класу TComponent.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.141 сек.