408______________________________________________Глава 6

6.5.3.2 Построение приложения-клиента

Теперь рассмотрим приложение-клиент. Общий вид предлагаемого тестового
приложения-клиента приведен на рис. 6.9. Но, разместив сразу все его компонен-
ты, код для них мы будем писать постепенно, осваивая различные способы связи с
сервером.

Рис. 6.9

Приложение-клиент DDE

Итак, начнем с разработки формы клиента.

1. Перенесите на форму компонент DdeClientConv и установите его свойство
ConnectMode равным ddeManual, поскольку мы будем связываться с разными
серверами.

2. Перенесите на форму компонент DdeClientItem и установите его свойство Dde-
Conv равным DdeClientConvl.

3. Перенесите на форму два компонента ComboBox. Первый из них, предназна-
ченный для выбора сервера, назовите CBServer. В его свойство Items занесите
список серверов: «Server» и «Server!». Второй ComboBox, предназначенный
для выбора темы, назовите CBTopics. В его свойство Items занесите список
тем: «Topic!» и «TopicZ». В обработчик события OnCreate формы вставьте опе-
раторы, задающие значения индексов обоих компонентов ComboBox равны-
ми О.

4. Перенесите на форму компонент Memo и два компонента Edit. Тексты Memo и
первого Edit (Editi) очистите. Второй компонент Edit назовите ЕМасго и за-
дайте в нем какой-нибудь текст, например, «Макрос 1». Этот компонент будет
в дальнейшем использоваться для передачи макросов на сервер.

5. Перенесите на форму четыре кнопки Button, расположите их согласно рисун-
ку 6.9 и задайте на них надписи Запрос, Clipboard, PokeData и Выполнить.

6. Перенесите на форму кнопку SpeedButton, назовите ее SBLink и установите
на ней надпись Контакт. Эта кнопка должна фиксироваться в нажатом состоя-
нии. Поэтому установите у нее свойство AllowAHUp равным true, а свойство
Grouplndex равным 1.

На этом размещение всех компонентов окончено. Теперь можно приступать к
рассмотрению различных способов обмена информацией с сервером.

6.5.3.3 Запрос данных сервера

Запросить данные сервера по инициативе клиента можно методом RequestDa-
ta компонента DdeClientConv. Этот метод объявлен следующим образом:

char * RequestData(const System::AnsiString Item);