Тема: idAntiFreeze
Показать сообщение отдельно
  #1  
Старый 06.07.2010, 11:08
elsouro elsouro вне форума
Прохожий
 
Регистрация: 10.06.2010
Сообщения: 4
Репутация: 10
По умолчанию idAntiFreeze

Программа по нажатию кнопки скачивает из интернета определенный файл такой функцией
Код:
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;

Как сделать, чтобы она не зависала на время пока скачивается файл? Добавлял Indy Antifreeze - не помогает...
Может быть использовать какой-нить другой способ скачки?
Ответить с цитированием