Справочник по компонентам Delphi. Часть 2
Страница 55. Компонент TDDECIientltem


Компонент TDDECIientltem

TObject—>TPersistent—”TComponent—>TDDEClientItem
Модуль DDEMAN
Страница Палитры компонентов System

Этот компонент представляет элемент данных на клиентской стороне. После установления контакта с сервером нужно присвоить свойству

(Pb) property DDEConv: TDDEClientConv;

указатель на объект, соответствующий появившемуся контакту, а свойству

(Pb) property DDEItem: String;

имя элемента данных сервера. В этом случае все изменения будут отслеживаться.

В рассмотренном ниже примере приложение-клиент вступает в контакт с сер­вером InfbServer на тему TimeTopic. При нажатии кнопки TimeButton связь устанавливается, при отпускании — разрывается. Метод TimeConvOpen, слу­жащий обработчиком события ОпОреп, присваивает значения именам темы и элемента данных.

const
InfoServer = 'infoserv';
TimeConversation = 'TimeTopic';
ServerTimeItem = 'Timeltem' ;

SCannotStart = 'Cannot start conversation';

procedure TFormI.TimeButtonClick(Sender: Tobject);
begin
if TimeButton.Down then begin

if not TimeConv.SetLink(InfoServer, TimeConversation) or not TimeConv.OpenLink then begin

MessageDIg(SCannotStart, mtError, [mbOk], 0) ;
TimeButton.Down := False;
end end else TimeConv.CloseLink;
end;

procedure TPormI.TimeConvOpen(Sender: TObject);

begin
ClientTimeItem.DDEConv := TimeConv;
ClientTimeItem.DDEItem := ServerTimeItem;
end;

Организация данных у клиента сходна с той, которая принята на сервере:

(Pb) property Text: String;
(Pb) property Lines: TStrings;
Свойство Text является подмножеством Lines и содержит первую строку этого набора.

Когда изменяются данные на сервере, эти изменения отражаются в TDDEClientItem. В этот момент происходит событие:

(Pb) property OnChange: TNotifyEvent;

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

Принципы работы с DDE отражены в примере DDEINFO. Приложение-сервер запускает таймер и с установленным периодом формирует текстовые строки со значением текущего времени и количества свободной памяти. Эти строки являются элементами данных соответствующих тем DDE. На форме клиента находятся две кнопки — Time и Memory. При их нажатии происходит попытка входа в соответствующий контакт. Если она была успешной, кнопка утаплива­ется, и на ней отображается время или количество свободной памяти. При отжатии кнопки контакт разрывается.

 
« Предыдущая статья   Следующая статья »