Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2012, 12:49   #1
sasha_gavrithing
 
Регистрация: 01.05.2012
Сообщений: 7
Восклицание Приложение зависает при обращении к IdHTTP1.Get

Добрый день! Срочно нужна помощь по одному вопросу.
Ниже описанная функция проверяет подключение к Интернету - возвращает True, если доступ к Интернету есть, иначе False. Всё проходит отлично, когда все устройства(WiFi, LAN) включены и доступ к интернету имеется или когда все адаптеры отключены. Но когда, допустим, включен адаптер Wi-Fi и нет доступного подключения к Интернету, программа зависает на некоторое время.

Помогите разобраться с этой проблемой.

Код:
function GetInetConnect: Boolean;
var
 IdHTTP1: TIdHTTP;
 Thread1: TThread;
begin
   dwConnectionTypes:=INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY;
   Result:=InternetGetConnectedState(@dwConnectionTypes, 0);
   if Result then begin
     Application.ProcessMessages;
     IdHTTP1:=TIdHTTP.Create;
     Thread1:=TThread.Create;
     IdHTTP1.ConnectTimeout:=15000;
     IdHTTP1.Request.UserAgent:=('Mozilla/5.0 (Windows NT 6.1; WOW64; rv:12.0) Gecko/20100101 Firefox/12.0');
      try
        IdHTTP1.Get('http://automation.whatismyip.com/n09230945.asp');
     except
        Result:=false;
      end;
     IdHTTP1.Free;
     Thread1.Free;
   end;
end;

Последний раз редактировалось sasha_gavrithing; 22.08.2012 в 12:57.
sasha_gavrithing вне форума Ответить с цитированием
Старый 22.08.2012, 15:10   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

читаем про потоки или асинхронность(хотя один фиг).

idhttp блокирующий компонент.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.08.2012, 15:14   #3
sasha_gavrithing
 
Регистрация: 01.05.2012
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
читаем про потоки или асинхронность(хотя один фиг).

idhttp блокирующий компонент.
Спасибо. Теперь понял в чём была проблема))
sasha_gavrithing вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависает приложение Slow267 Win Api 2 02.05.2011 13:36
Зависает программа на паскале при обращении к модулю АСМ toosya Помощь студентам 1 29.01.2011 14:19
При создании нескольких экземпляров класса приложение зависает Mixasik Общие вопросы C/C++ 1 25.04.2009 13:25