• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Процесс Загруски Файла

  • Автор темы prosto4ok
  • Дата начала
P

prosto4ok

Как отобразить на ProgressBar процесс загрузки файла?
нашел код, пробую но ругаеться на
Код:
IDHTP.OnWorkBegin := WorkBegin;
IDHTP.OnWorkEnd := WorkEnd;
IDHTP.OnWork := Work;

вот код
Код:
 private
FWorkCount: Integer;
FWorkCountMax: Integer;
public
procedure WorkBegin(ASender: TObject; AWorkMode: TWorkMode; const AWorkCountMax: Integer);  
procedure WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
procedure Work(ASender: TObject; AWorkMode: TWorkMode; const AWorkCount: Integer);
end;

function ConvertBytes(Bytes: Integer): String;
begin
if Bytes div 1024 < 1 then Result := FormatFloat('0.00 "Byte"', Bytes);
if Bytes div 1024 >= 1 then Result := FormatFloat('0 "KB"', Bytes/1024);
if Bytes div 1024 >= 1024 then Result := FormatFloat('0.00 "MB"', Bytes/1048576);
if Bytes div 734003200 >= 1 then Result := FormatFloat('0.00 "GB"', Bytes/1073741824);
end;

procedure TForm1.WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin		 
FWorkCount := 0;
FWorkCountMax := AWorkCountMax;
ProgressBar.Position := 0;
InfoLabel.Caption := Format('Размер: %s/%s',
[ConvertBytes(FWorkCount), ConvertBytes(FWorkCountMax)]);
end;

procedure TForm1.WorkEnd(ASender: TObject; AWorkMode: TWorkMode);
begin
InfoLabel.Caption := 'Завершение загрузки';
end;

procedure TForm1.Work(ASender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
FWorkCount := AWorkCount;
ProgressBar.Position := FWorkCount * 100 div FWorkCountMax;
InfoLabel.Caption := Format('Размер: %s/%s',
[ConvertBytes(FWorkCount), ConvertBytes(FWorkCountMax)]);
end;

перед IDHTP.Get(...)
поставил
Код:
 IDHTP.OnWorkBegin := WorkBegin;
IDHTP.OnWorkEnd := WorkEnd;
IDHTP.OnWork := Work;
на него и ругаеться
помогите плизз
 
M

-master-

Главное не обращать внимание на ругательства.
 
S

sinkopa

Как отобразить на ProgressBar процесс загрузки файла?
нашел код, пробую но ругаеться на
помогите плизз
Ну... экстрасенсы на другом форуме...
(1) Что это у Вас за куски кода? над private (то что Вы нам не показали) это что было? Form1?
(2) Что Вы имеете в виду под словом "ругается"? Ошибка компилятора? что именно пишет?
(3) в секции uses прописано?
Код:
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP;
(4) А сам IDHTP у Вас где и как объявлен? В том же юните что и Form1? И в каком месте вызов IDHTP.Get(...) у Вас?
Может следует в uses и модуль с Form1 включить, и вот так прописывать?
Код:
IDHTP.OnWorkBegin := Form1.WorkBegin;
IDHTP.OnWorkEnd := Form1.WorkEnd;
IDHTP.OnWork := Form1.Work;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!