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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.10.2010, 21:29   #1
Lauri
Форумчанин
 
Регистрация: 01.04.2010
Сообщений: 171
По умолчанию Зависание при скачке файла

Всем привет, такая проблема...
При скачивании файла из инета (делаю это так)
Код:
function GetInetFile(const fileURL, FileName: String): boolean;
const BufferSize = 1024;
var hSession, hURL: HInternet;
Buffer: array[1..BufferSize] of Byte;
BufferLen: DWORD;
f: File;
sAppName: string;
begin
   Result:=False;
   sAppName := ExtractFileName(Application.ExeName);
   hSession := InternetOpen(PChar(sAppName), INTERNET_OPEN_TYPE_PRECONFIG,
         nil, nil, 0);
   try
      hURL := InternetOpenURL(hSession,
      PChar(fileURL),nil,0,0,0);
      try
         AssignFile(f, FileName);
         Rewrite(f,1);
         repeat
            InternetReadFile(hURL, @Buffer, SizeOf(Buffer), BufferLen);
            BlockWrite(f, Buffer, BufferLen)
         until BufferLen = 0;
         CloseFile(f);
         Result:=True;
      finally
      InternetCloseHandle(hURL)
      end
   finally
   InternetCloseHandle(hSession)
   end
end; 


procedure TForm1.Button1Click(Sender: TObject);
begin
   FileOnNet:=edit1.text;
   LocalFileName:=edit2.text;
  application.ProcessMessages;
   if GetInetFile(FileOnNet,LocalFileName)=True then
      ShowMessage('Download successful')
   else
      ShowMessage('Error in file download')
end;
Зависает программа до того времени пока не закончит скачивание.
Вопрос :
Как избавится от зависания, и как вывести на прогресс бар скачивание файла?
Lauri вне форума Ответить с цитированием
Старый 10.10.2010, 21:39   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Вывести загрузку файла в отдельный поток
BOBAH13 вне форума Ответить с цитированием
Старый 11.10.2010, 10:25   #3
dmitriegorovih
Ещё не
Форумчанин
 
Аватар для dmitriegorovih
 
Регистрация: 04.01.2010
Сообщений: 517
По умолчанию

Цитата:
Зависает программа до того времени пока не закончит скачивание.
application.ProcessMessages;
Воображение важнее, чем знания. (Albert Einstein)
dmitriegorovih вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Зависание ПК при печати. delf7 Компьютерное железо 3 09.06.2010 11:16
Зависание при пост запросе Фенрир Работа с сетью в Delphi 1 14.12.2009 15:18
Как обработать ошибки при скачке html-страниц? delphyok Работа с сетью в Delphi 6 14.08.2009 14:06
Зависание при показе Диалога nusik Общие вопросы C/C++ 11 02.07.2009 08:20
Зависание при открытии сетевого файла Bes1k Microsoft Office Excel 1 02.03.2009 07:38