как использовать сервер DDE - PullRequest
2 голосов
/ 26 февраля 2011

Могу ли я получить небольшой пример кода для использования DDE в качестве сервера?Я знаю, как использовать клиентскую часть, но не могу понять, как настроить приложение для работы в качестве сервера и получения данных.

Ответы [ 2 ]

2 голосов
/ 27 февраля 2011

Использовать сервер DDE настолько просто, что вам даже не понадобится пример кода.Вы можете сделать это прямо во время разработки в конструкторе форм Delphi:

Чтобы создать сервер, который отправляет данные:

  1. Удалите TDDEServerConv и TDDEServerItem в вашей форме или модуле данных.
  2. Подключите элемент сервера к диалогу сервера (установите DDEServerItem1.ServerConv = DdeServerConv1 с помощью инспектора объектов, есть раскрывающийся список, но двойного щелчка достаточно).
  3. Установите значение DDEServerItem.Text равным некоторому допустимому текстовому значению (то есть 'A')

Для получения данных вы можете захотеть иметь макросы, которые выполняются клиентом DDE, которыепередать данные на сервер.Для этого вы используете событие DdeServerConv.OnExecuteMacro.Попробуйте сбросить параметр Msg: TStrings в заметку, например:

  Memo1.Lines.Assign(Msg); 

Теперь сохраните и запустите ваш проект.

Чтобы проверить его в Excel, введите:

=Project1|DdeServerConv1!DdeServerItem1

Синтаксическими частями клиента Excel dde являются Имя приложения, затем вертикальная черта, имя разговора, затем восклицательный знак, затем имя элемента.

И вы увидите значение (A, или что-то еще, что вы поместили в текстсвойства в элементе) отображаются в Excel.

Это работающий сервер DDE, состоящий из одного элемента, без написанного вами кода.

Обычно я нахожу, что вместо этого я создаю диалоги и элементы во время выполнения.из во время разработки, в реальном сценарии, который более полезен для меня.

Для более старых (не Unicode) версий Delphi есть также полнофункциональный коммерческий продукт под названием Django, который очень помогает в работе DDE.

Я также думаю, что вы, возможно, ищете информацию о том, как написать обработчик команд "DDE Poke" на стороне delphi.У меня нет демо для этого.Я попробовал это, и очевидные вещи не совсем подходили мне (элемент на вашем сервере имеет событие OnPoke, я написал простой клиент, названный PokeData, и он не работал).

2 голосов
/ 26 февраля 2011

Посмотрите в вашей установке Delphi папку с именем DDEDemo. Это DDE-проект, который Delphi использует для поставки (я не уверен на 100%, что он все еще включен, но посмотрите). Демонстрация включает в себя клиент и сервер DDE.

Редактировать - попробуйте эту ссылку для примера кода.

...