Delphi-Загрузка файлов с интернет сервера

  • Автор темы Artexoid
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

Artexoid

#1

═════════════════════════════════════════════════════════════════
Помогите пожалуйста. Мне нужно организовать загрузку файла с интернет сервера (как показано на рисунке). Подскажите:
-Как проверить есть ли файл на сервере?
-Какой процедурой надо пользоваться для загрузки самого файла?
-Как сделать так чтобы ProgressBar показывала % загрузки файла?
-Как сделать чтобы Label показывал в байтах скалько байт загружено и сколько всего?
Зарание огромное спасибо!!!
 
B

Barmutik

#3
Воспользоваться компонентом TIndyHTTP.

Мелкий пример использования .. откачка в потоке. В потом вызываются в Synchronize секции функции которые обновляют содерджимое на форме. У вас есть общее количество байт для скачки и сколько уже скачано... отсюда элементарно делаются проценты:

Код:
procedure TDownloadThread.Execute;
var
Response: TFileStream;
begin
try
 Response := TFileStream.Create('Ваш файл на диске', fmCreate);
 FDownloadHTTP := TIdHTTP.Create(nil);
 try
  FDownloadHTTP.Request.Referer := 'xxx';
  FDownloadHTTP.OnWorkBegin := WorkBegin;
  FDownloadHTTP.OnWork := Work;
  FDownloadHTTP.Get('Ваш урл', Response);
 finally
  FDownloadHTTP.Free;
  Response.Free;
 end;
except
end;
end;

procedure TDownloadThread.WorkBegin(Sender: TObject;
AWorkMode: TWorkMode; const AWorkCountMax: Integer);
begin
FMaxProgress := AWorkCountMax;
Synchronize(FSetMaxProgress);
end;

procedure TDownloadThread.Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
FProgress := AWorkCount;
Synchronize(FSetProgress);
end;
 
Статус
Закрыто для дальнейших ответов.