Показать сообщение отдельно
  #1  
Старый 07.02.2012, 15:12
Siropchik Siropchik вне форума
Прохожий
 
Регистрация: 07.02.2012
Сообщения: 22
Репутация: 10
По умолчанию IdTelnet нужна помошь

Не судите строго я в программировании новичок самоучка.
Проблема вот такая
Через телнет соедняюсь с ххх приложением и шлю ему запросы.
Если получать ответ на запросы в обработчике событий TForm1.IdTelnet1DataAvailable то ответ приходит и нет никаких проблем
но мне получить ответ в глобальной переменной типа String
я делаю это так (пример ниже) и после вызова процедуры Send_Telnet(command); в переменной String_response пустота.
Помогите пожалуйста , уже начал головой бится об стену , отблагодарю как смогу.
PHP код:
implementation
{$R *.dfm}
//************************************************************************
procedure TForm1.IdTelnet1DataAvailable(SenderTIdTelnet; const BufferString);
begin
String_response
:= Buffer;
Status_response:= True;
//Form1.caption:=Buffer;
end;
//************************************************************************
procedure TForm1.Send_Telnet(commandstring);
var
:  LongWord;
begin
 IdTelnet1
.Host := 'localhost';
 
IdTelnet1.port := 6060;
 if 
not(idTelnet1.Connectedthen
  
try
    
IdTelnet1.Connect;      
  
except
    ShowMessage
('not connect');
  
end;
 if 
idTelnet1.Connected then
  Begin
    String_response
:='';
    
Status_response:= False;   
    
idTelnet1.WriteLn(command);  
    while  
Status_response do ; 
 
end;
end

если закоментировать в процедуре procedure TForm1.Send_Telnet(command: string); строку String_response:=''; и через Button отправлять запрос , то возврат ответа появляется только пр нажатии на кнопку второй раз

PHP код:
procedure TForm1.Button6Click(SenderTObject);
begin
Form1
.caption:='';
Send_Telnet('<request><get_camera></get_camera></request>');
Form1.caption:=String_response;
String_response:='';
end
Ответить с цитированием