Лабораторная работа 32. Обмен данными между программами с помощью DDE
DDE (Dynamic Data Exchange) – механизм обмена данными (текстовыми
строками) между программами. При этом одна из программ выступает в качестве сервера и по запросу предоставляет данные программам-клиентам. Технологию DDE
поддерживает большинство программ Windows, в том числе Microsoft Excel. В Delphi есть специальные компоненты для реализации DDE. Компонент DDEClientConv
(закладка System) используется в клиентских программах, компонент DDEServerConv (закладка System) – в серверных.
Рассмотрим взаимодействие клиентских программ созданных в Delphi с Microsoft Excel. В клиентской программе компонент DDEClientConv необходимо
связать с программой-сервером. Для этого нужно заполнить свойства DDEService – название программы-сервера и DDETopic – имя объекта, с которым происходит
обмен информацией (для Excel это будет имя листа в книге). Значения свойств можно заполнить автоматически, скопировав в буфер обмена любую ячейку листа, а затем вставив в режиме редактирования значения DDEService содержимое буфера с
помощью кнопки Paste Link.
Далее для пересылки строки | на | сервер | используется метод |
function PokeData(Item: String; | Data: | PChar): | boolean. Функция |
помещает строку Data в раздел данных Item в программу-сервер. Результат функции true, если пересылка произошла успешно. Отметим, что для Excel разделом
данных является ячейка, у | которой указывается | адрес | в | формате | |
R<номер строки>C<номер столбца>. | Обратите | внимание | на | необходимость | |
преобразования типа String в тип PChar. |
|
|
|
| |
Пример: DDEClientConv1.PokeData(’R2C3’, Pchar(Edit1.Text)); | |||||
Чтобы получить информацию от сервера | используется | метод | |||
function RequestData(Item: | String): | PChar. | Функция возвращает |
строку данных, которая находится в программе-сервере в заданном разделе данных.
В Delphi имеется также компонент DDEClientItem, который связывает
клиентскую программу с конкретным разделом данных в программе-сервере. У компонента DDEClientItem необходимо заполнить поля DDEConv – указатель на
компонент DDEClientConv и DDEItem – имя раздела данных. После этого не
требуется постоянно вызывать методы для получения информации от сервера. Информация при изменении раздела данных в серверной программе будет автоматически обновляться в свойствах Lines и Text объекта DDEClientItem.
Также при изменении раздела данных возникает событие OnChange, которое можно обработать.
- Лабораторная работа 4. Строки. Операторы цикла.
- Лабораторная работа 7. Множества
- Лабораторная работа 9. Работа с файлами
- Подпрограммы для работы с пером
- Лабораторная работа 13. Динамические массивы
- Лабораторная работа 16. Простейшие задачи на форме
- Лабораторная работа 18. Работа с меню
- ГЛАВНОЕ МЕНЮ
- КОНТЕКСТНОЕ МЕНЮ
- Лабораторная работа 19. Работа со списками
- СПИСКИ ВЫБОРА
- Лабораторная работа 32. Обмен данными между программами с помощью DDE
- Лабораторная работа 34. Использование динамически подключаемых библиотек (DLL).
- Лабораторная работа 36. Конструкторы и деструкторы