Windows 中显示正在更新的进度条。在 OSX 中,会显示进度条,但看不到进度条移动。
请参阅下面的代码。
procedure TForm1.Button1Click(Sender: TObject);
var
m : TMemoryStream;
begin
IdHTTP1.OnWork:= HttpWork;
m := TMemoryStream.Create;
IdHTTP1.Get('http://www.example.com/pictures.zip', m);
m.SaveToFile('/users/demo/pictures.zip');
m.Free;
end;
procedure TForm1.HttpWork(ASender: TObject; AWorkMode: TWorkMode;
AWorkCount: Int64);
var
Http: TIdHTTP;
ContentLength: Int64;
Percent: Integer;
begin
Http := TIdHTTP(ASender);
ContentLength := Http.Response.ContentLength;
Percent := 100 * AWorkCount div ContentLength;
ProgressBar1.Value := Percent;
end;
如何在 OSX 中更新进度条?
最佳答案
这是我的代码,它适用于 Windows 和 Mac:
Percent := 100 * AWorkCount div ContentLength;
frmDownloadProgress.ProgressBar1.Value := Percent;
Application.ProcessMessages;
Application.ProcessMessages
是如果 TIdHTTP 组件位于主线程上更新进度条的关键。
关于macos - Firemonkey OSX 下载过程中更新进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455925/