• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы 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;
на него и ругаеться
помогите плизз
 
Главное не обращать внимание на ругательства.
 
Как отобразить на 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;
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

Курс AD