Russian Belarusian English German Japanese Ukrainian

Rashka.studio - игры и приложения для Android! Заходи, ждём тебя =)

RequestData

CuBook25

Запросить данные сервера по инициативе клиента можно с помощью функции RequestData компонента DdeCIientConv. Эта функция объявлена следующим образом:
char * RequestData(const System::AnsiString Item);
Здесь Item - строка, содержащая имя компонента DdeServerltem на сервере, в котором хранится требуемая информация. Функция RequestData возвращает эту информацию в виде строки с нулевым символом в конце. Чтобы воспользоваться этой функцией вы можете в обработчике щелчка на кнопке с надписью «Запрос» написать следующий текст:
char Info[256];
if (( ! DdeClientConv1->SetLink(CBServer->Text, CBTopics->Text)) || ! DdeClientConv1->OpenLink()) ShowMessage ("Нет контакта с сервером 1,1 + CBServer->Text + "' по теме '" + CBTopics->Text + "'");
else
{
Info = DdeClientConvl->RequestData("Items" + IntToStr(CBTopics->ItemIndex+1));
Memo1->SetTextBuf(Info);
DdeClientConv1->CloseLink();
}
В начале этого обработчика осуществляется связь методами SetLink и OpenLink с сервером, заданным пользователем в списке CBServer по теме, заданной в списке CBTopics. Если связь осуществилась, то в переменную Info типа char заносится информация от компонента Items1 или Items2 на сервере в зависимости от выбранной пользователем темы. Затем эта информация методом SetTextBuf заносится в компонент Memo1. Последний оператор методом CloseLink разрывает связь с сервером.
 
Поскольку функция RequestData заносит информацию в DdeClientConv и в связанный с ним компонент DdeClientltem, то при изменении в результате запроса этой информации она отобразится в окне редактирования Edit1. При этом мы продублировали получение информации. В действительности достаточно одной из двух альтернатив:
1. Ограничиться процедурой занесения информации в Memo1, и не вводить обработчик события OnChange компонента DdeClientltem.
2. Ввести обработчик события OnChange компонента DdeClientltem, а в процедуре обработки щелчка на кнопке «Запрос» заменить два оператора чтения информации на один:
DdeClientConv1->RequestData("Items" + IntToStr(CBTopics->ItemIndex+1));
Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter

Добавить комментарий


Защитный код Обновить