Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Ошибка при работе с HttpCli


Автор: 14SatanA88 13.9.2010, 13:46
Доброго времени суток, программеры.
Опять понадобилась ваша помощь.

Код

procedure TrayWeather(kod: string);
var name, t, d, v, o: string;
begin

// показать погоду в трее

// проверка на наличие соединения

  if ((RasConnectionCount=0) and (OptForm.ProxyCheckBox.Checked=false))
  then ShowMessage('Отсутствует соединение с Интернетом.'+#13#10+'Подключите Интернет и повторите попытку.')
  else begin // есть Инет
// выкачиваем xml по коду выбранного города
    if OptForm.ProxyCheckBox.Checked=false then
    begin
      MainForm.XMLDocument1.LoadFromFile('http://rp5.by/xml/'+kod+'/ru');
      MainForm.XMLDocument1.Active:=true;
    end
    else begin
      MainForm.HttpCli1.Proxy:=OptForm.ProxyAdrEdit.Text;
      MainForm.HttpCli1.ProxyPort:=OptForm.ProxyPortEdit.Text;
      MainForm.HttpCli1.URL:='http://rp5.by/xml/'+kod+'/ru';
      MainForm.HttpCli1.RcvdStream:=TMemoryStream.Create;
      MainForm.HttpCli1.Get;
      MainForm.HttpCli1.RcvdStream.Seek(0,0);
      MainForm.XMLDocument1.LoadFromStream(MainForm.HttpCli1.RcvdStream);
      MainForm.XMLDocument1.Active:=true;
      MainForm.HttpCli1.RcvdStream.Free;
    end;
    // парсим полученный файл
    // название города
    name:=MainForm.XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[4].Text;
    // облачность в процентах
    o:=MainForm.XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[10].ChildNodes[4].Text;
    o:='Облачность '+o+'%';
    // давление в миллиметрах ртутного столба
    d:=MainForm.XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[10].ChildNodes[6].Text;
    d:='Давление '+d+'мм.рт.ст.';
    // температура в градусах по цельсию
    t:=MainForm.XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[10].ChildNodes[7].Text;
    if strtoint(t)<0 then t:='Температура '+t+'°C' else t:='Температура +'+t+'°C';
    // влажность воздуха в процентах
    v:=MainForm.XMLDocument1.DocumentElement.ChildNodes[0].ChildNodes[10].ChildNodes[8].Text;
    v:='Влажность воздуха'+v+'%';
   end;
   MainForm.CoolTrayIcon.ShowBalloonHint('Погода в городе '+name,
    t+#13+o+#13+d+#13+v,
    bitInfo, 10);

end;



При вызове события (наведение курсора мыши на икону в трее) прога вылетает с ошибкой EHTTPException 'HTTP component HttpCli1 is busy'

Как избежать этой ошибки?

Автор: v1m 13.9.2010, 13:59
скинь проект целиком так не чего не понятно..

Автор: 14SatanA88 13.9.2010, 14:17
Все, я уже разобрался сам.

Автор: v1m 13.9.2010, 19:00
омг)) стоило создавать тему если сам разобрался за полчаса?))

Автор: 14SatanA88 14.9.2010, 08:07
я просто запаниковал, потому что ошибка вылетала по неизвестной мне причине.
а потом разобрался. 
так что всем спасибо, все свободны. )))

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)