![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Я делаю загрузку файла через indy. Вот код:
Код:
procedure TForm3.FormActivate(Sender: TObject);
var
HTTP:TIdHTTP;
LoadStream: TMemoryStream;
FileSize:integer;
begin
form3.ProgressBar1.Position:=0;
HTTP:=TIdHTTP.Create(nil);
FileSize:=GetInetFileSize(UpdateDir + 'minecraft.zip'); {Возвращает размер файла}
form3.ProgressBar1.max:=FileSize;
Label2.Caption:='Загрузка... (' + IntToStr(FileSize) + ' байт)';
LoadStream := TMemoryStream.Create;
HTTP.Get(updateDir + 'minecraft.zip', LoadStream); {загрузка файла}
LoadStream.SaveToFile(appdata + '/' + rootdir + '/minecraft.zip');
LoadStream.Free; {освобождаем поток}
HTTP.Free;
Form3.Close;
form4.Show;
end;
procedure TForm3.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
begin
form3.ProgressBar1.Position:=AWorkCount;//количество скачаного на данный момент
end;![]() |
|
#2
|
|||
|
|||
|
а сервер размер файла сообщает?
в лейбле размер файла появляется на этой строчке Label2.Caption:='Загрузка... (' + IntToStr(FileSize) + ' байт)'; ? |
|
#3
|
|||
|
|||
|
а нет, не заметил, HTTP ты ж сам создаёшь, а событию onWork не присвоил.
пропиши там ещё HTTP.OnWork:=IdHTTP1Work; и ещё try поставь =) |
|
#4
|
|||
|
|||
|
Цитата:
|