macos - Firemonkey OSX 下载过程中更新进度条

标签 macos delphi progress-bar indy firemonkey

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/

相关文章:

android - 自定义不确定进度可绘制缩放

perl - 为 OS X 构建 Perl - 架构特定的编译选项

macos - 如何解压和打包pkg文件?

Delphi 2009 - 如果出现 MessageDlg,从任务栏关闭所有功能会停止处理?

java - SWT 进度条

安卓 : cancelling progressbar caught exception : android. view.ViewRoot$CalledFromWrongThreadException

objective-c - 获取进程列表并隐藏特定应用程序

OSX 应用程序包中的 Java swixml

performance - 哪些简单的更改对您的 Delphi 程序进行了最大的改进

c++ - 获取事件 udp 连接的目标 IP/端口?