На этом шаге мы рассмотрим компоненты TDDEClientConv, TDDEClientItem,
TDDEServerConv, TDDEServerItem.
Вместо связывания или внедрения объектов в программу программист может использовать непосредственный обмен данными между приложениями. Технология DDE (Dynamic Data Exchange - динамический обмен данными) позволяет приложениям совместно использовать одни и те же данные. Но при этом оба приложения должны поддерживать спецификации DDE.
Для запуска процесса DDE должна быть установлена связь между клиентским и серверным приложениями DDE, при этом клиентское приложение запрашивает данные серверного приложения.
В среде разработки Delphi программист может создать как клиентское, так и серверное приложение DDE. Фактически одно и то же приложение Delphi может быть как клиентским, так и серверным, для этого используются компоненты TDdeClientConv, TDdeClienItem, TDdeServerConv и TDdeServerItem.
Небольшая программа, приведенная ниже, продемонстрирует использование технологии DDE. При этом в качестве серверного приложения будем использовать Microsoft Excel (для этого необходимо будет создать электронную таблицу Excel). Запустим Microsoft Excel и создадим электронную таблицу, как показано на рис.1. В первую ячейку (А1) введем строку "Пример использования DDE". Сохраним рабочий журнал Excel, но не будем закрывать ни электронную таблицу, ни Microsoft Excel.
Рис.1. Электронная таблица Excel, совместно используемая
и программой Excel, и пользовательским приложением
Создадим новое приложение Delphi и разместим на форме метку, поле ввод и компоненты TDdeClientConv, TDdeClienltem (рис.2).
Рис.2. Windows-окно примера при проектировании
Для компонента TDdeClienItem создадим обработчик события UpdateDisplay со следующим кодом:
Procedure TForm1.DdeClientItem1Change (Sender: Tobject); begin Editl.Text:=DdeClientlteml.Text; end;
Создадим связь между электронной таблицей Excel и нашей программой. Для этого выполним следующие действия:
Рис.3. Диалоговое окно DDE Info
Рис.4. Windows-окно приложения при запуске
Текст этого примера можно взять здесь.