32 Урока Borland Delphi



Урок 12 - часть 3


procedure TDdeSrvrForm.doMacro(Sender: TObject;

Msg: TStrings);

var

Text: string;

begin

Text := '';

if Msg.Count > 0 then Text := Msg.Strings[0];

MessageDlg ('Executing Macro - ' + Text, mtInformation,

[mbOK], 0);

end;

Объект TDdeServerItem связывается с TDdeServerConv и определяет, что, собственно, будет пересылаться по DDE. Для этого у него есть свойства Text и Lines. (Text имеет то же значение, что и Lines[0].) При изменении значения этих свойств автоматически происходит пересылка обновленных данных во все приложения-клиенты, установившие связь с сервером. В нашем приложении изменение значения свойства Lines происходит в обработчике события OnChange компонента Edit1:

procedure TDdeSrvrForm.doOnChange(Sender: TObject);

begin

if not FInPoke then

DdeTestItem.Lines := Edit1.Lines;

end;

Этот же компонент отвечает за получение данных от клиента, в нашем примере это происходило при нажатии кнопки Poke Data, это выполняется в обработчике события OnPokeData:

procedure TDdeSrvrForm.doOnPoke(Sender: TObject);

begin

FInPoke := True;

Edit1.Lines := DdeTestItem.Lines;

FInPoke := False;

end;

И последнее - установление связи через Clipboard. Для этого служит метод CopyToClipboard объекта TDdeServerItem. Необходимая информации помещается в Clipboard и может быть вызвана из приложения-клиента при установлении связи. Обычно, в DDE-серверах для этого есть специальный пункт меню Paste Special или Paste Link.

Итак, мы рассмотрели пример полнофункционального DDE-сервера, построенного с помощью компонент Delphi. Очень часто существующие DDE-серверы не полностью реализуют возможности DDE и предоставляют только часть сервиса. Например, ReportSmith позволяет по DDE только выполнять команды (макросы).
 
 

  • DDE-клиенты

  • На рис.4 представлен пример DDE-клиента во время дизайна в среде Delphi.

    Рис.4: DDE-клиент в среде Delphi.

    Для построения DDE-клиента в Delphi используются два компонента TDDEClientConv и TDDEClientItem. Аналогично серверу, в программе обычно используется один объект TDDEClientConv и один и более связанных с ним TDDEClientItem.




    Содержание  Назад  Вперед