logo
Программирование в среде Delphy / Программирование в среде Delphi

25.2. Динамический обмен данными

Динамический обмен данными (Dynamic Data Exchange – DDE) является одним из первых протоколов обмена данными в системе Windows. На его основе были созданы протоколы OLE (Object Link and Embedding – связывания и внедрения объектов) сначала версии 1.0, а затем 2.0.

Приложения, использующие DDE, разделяются на две категории: клиенты, которые задают вопросы, и серверы, которые на них отвечают. Оба участника процесса осуществляют контакты (Conversations) по определенным темам (Topic), и в рамках темы производится обмен элементами данных (Items).

Для создания сервера на страничке компонент System имеются два компонента: TDDEServerConv и TDDEServerItem. Для получения доступа к сервису DDE–сервера клиенту нужно знать несколько параметров:

• имя сервиса (Service Name) – это имя приложения (сервера) с путем к нему;

• имя темы (Topic Name);

• имя элемента данных (Item Name).

Объект TDDEServerItem связывается с TDDEServerConv и определяет, что будет пересылаться по DDE. Для этого у него есть свойства Lines и Text. При изменении значений этих свойств происходит автоматическая пересылка обновленных данных во все приложения–клиенты, которые установили связь с сервером по данной теме. Обработка сообщений от клиентов производится в обработчике события OnPokeData объекта TDDEServerItem.

Для создания клиента используются компоненты TDDEClientConv и TDDEClientItem. Установление связи с сервером во время выполнения программы осуществляется методом SetLink с передачей ему имен сервиса и темы. Передача данных серверу осуществляется методом PokeDataLines с передачей имени элемента данных и собственно самих данных. Получение данных от сервера происходит в методе обработки события OnChange объекта TDDEClientItem.