Взаимодействие приложения с внешними программами 407

Компонент DdeServerItem имеет метод CopyToClipboard. При выполнении
этого метода в буфер обмена Clipboard заносится содержимое хранимой в компо-
ненте информации в специальном формате, который содержит информацию о кон-
такте: имена сервера и темы.

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

1. Перенесите на форму компонент DdeServerConv и установите его имя Name
равным Topicl. Это будет названием первой темы.

2. Перенесите на форму компонент DdeServerItem и установите его имя Name
равным Itemsl, а свойство ServerConv равным Topicl. Этот компонент будет
хранить содержание первой темы. В свойстве Strings задайте какой-нибудь
текст, например:

строка 1 темы Topicl сервера Server
строка 2 темы Topicl сервера Server

Этот текст впоследствии на стороне клиента позволит понять, с каким серве-
ром и по какой теме установлен контакт.

3. Перенесите на форму компонент Edit с именем Editi и задайте его свойство
Text равным тексту первой строки свойства DdeServerItem->Strings. Этот
компонент в дальнейшем потребуется для того, чтобы видеть, как можно на-
блюдать со стороны клиента изменения информации на сервере. Для этого в
обработчик события OnChange компонента Editi вставьте оператор

Itemsl->Text = Editl->Text;

переносящий текст из окна редактирования в компонент Itemsl.

4. Повторите пункты 1 и 2, перенеся на форму еще одну пару компонентов Dde-
ServerConv и DdeServerItem с именами Topic2 и Items2. Они будут отражать
вторую тему сервера. Текст темы можете сделать тем же, что и в компоненте
Itemsl, заменив в нем слова «Topicl» на «Topic2».

5. Добавьте на форму кнопку Button, в обработчик щелчка на которой вставьте
оператор

Itemsl->CopyToClipboard() ;

Эта кнопка будет заносить содержание темы в буфер обмена Clipboard.
На этом проектирование сервера закончено. Его форма может иметь вид, пред-
ставленный на рис. 6.8.

6. Сохраните проект, присвоив ему имя Server. Скомпилируйте проект, чтобы
создать выполняемый модуль, и проверьте, что все в порядке.

7. Сохраните это проект еще один раз под именем Serverl. Таким образом, у вас
будет два сервера с разными именами, чтобы можно было проверить связь
клиента с разными серверами. Замените в текстах компонентов Itemsl и
Items2 этого сервера слова «Server» на «Serverl«. Создайте выполняемый мо-
дуль второго сервера.

Рис. 6.8

Приложение-сервер DDE