Страница 53 из 59 Компонент TDDeServerltem TObject—”TPersistent—>TConiponent-”TDDeServerI tern Модуль DDEMAN Страница Палитры компонентов System Этот компонент реализует элемент данных, которые при установленном контакте будут передаваться клиенту. В принципе, протокол DDE подразумевает обмен любыми данными, формат которых зарегистрирован в буфере обмена. Но для рассматриваемых компонентов Delphi эти возможности ограничиваются только текстовыми данными. Так что свойство, содержащее формат обмена данными, property Fmt: Integer; всегда равно CF_TEXT. Данные содержатся в свойствах: (^ property Text: string; (Йэ) property Lines: TStrings; По сути дела, первое свойство представляет собой подмножество второго. При чтении Text равен первой строке Lines. Но если вы присваиваете ему значение, все прочие строки Lines очищаются. Элемент данных должен быть связан с определенной темой. В свойстве: (Pb) property ServerConv: TDDeServerConv; может быть задана ссылка на компонент типа TDDEServerConv, чье имя будет темой контакта DDE. Можно обойтись и без использования такого компонента. В этом случае именем темы будет являться заголовок (Caption) той формы, которая содержит TDDEServerItem. Элемент данных может быть скопирован в буфер обмена в специальном формате (в виде информации о контакте), с помощью метода: procedure CopyToClipboard; Для вступления в контакт посредством буфера обмена клиент может вызвать функцию GetPasteLinkInfo (см. ниже), и, проанализировав имена сервера, темы и элемента, принять решение о вступлении. Клиент может переустановить данные сервера. При переустановке возникает событие: (Pb) property OnPokeData: TNotifyEvent; Кроме того, для этого вами может быть использован метод: function PokeData(Data: HDDeData): Longint; Параметр Data должен представлять собой дескриптор области памяти, в которой содержится текстовая строка типа pChar. В отличие от OnPokeData, событие: (Pb) property OnChange: TNotifyEvent; возникает при любом изменении данных, как при присвоении значений свойствам Text или Lines, так и при вызове PokeData. Оно может также быть вызвано явно из метода: ^ procedure Change; |