progress-bar - 运行部分的 Inno Setup 简单进度页面

标签 progress-bar inno-setup pascalscript

我的安装程序很简单,基本上就是:

  1. 欢迎页面
  2. 进度页面
  3. 最后一页

欢迎页面和最终页面是标准的(只需一个按钮)。 在“进度”页面上,我正在静默安装一堆其他程序。

实际的脚本是在 `[Run] 部分中安装每个程序。
问题是栏达到 100%,然后停留在那里。
我只能更改消息文本。

我想要实现的是使用 Pascal 脚本显示进度(因为它可以让我有更多的灵 active ),例如:

procedure InitializeWizard;
begin
  ProgressPage.SetProgress(1, 100);
  exec(.......)
  ProgressPage.SetProgress(15, 100);
  exec(.......)
  ProgressPage.SetProgress(40, 100);
  ...
  ...
end;

这样我可以显示更准确的进度条。这就是我所拥有的(模拟安装。取自示例):

[Code]

var
  ProgressPage: TOutputProgressWizardPage;

procedure InitializeWizard;
begin
  ProgressPage := CreateOutputProgressPage('My App','');
end;

function NextButtonClick(CurPageID: Integer): Boolean;
var
  I: Integer;
begin
  if CurPageID = wpWelcome then begin
    ProgressPage.SetText('Starting installation...', '');
    ProgressPage.SetProgress(0, 0);
    ProgressPage.Show;
    try
      for I := 0 to 10 do begin
        ProgressPage.SetProgress(I, 10);
        Sleep(100);
      end;
    finally
      ProgressPage.Hide;
    end;
  end else
    Result := True;
end;

问题是,当我构建安装程序时,它没有显示欢迎页面(安装程序正在运行,但没有显示任何内容)。

我做错了什么?

提前谢谢你!

最佳答案

您可以使用 WizardForm.ProgressGauge 控制代码中实际进度条的位置。

关于progress-bar - 运行部分的 Inno Setup 简单进度页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6921254/

相关文章:

java - "java -version"命令在 Inno Setup 中有不同的结果

c++ - 为什么 Pascal Script 期望在我的外部函数声明附近有另一个分号?

jquery - 如何创建计票进度条

android - 每个 gridview 项目 Android 中的进度条

jquery - 用jquery填写进度条表单

inno-setup - 创新设置: How can I give a serial number to installer when I execute it silently in command line?

java - 如何在 Android 上使用两个或多个搜索栏

inno-setup - Innosetup返回标志

没有 "Credential Manager"的 Windows 静默安装的 Git

inno-setup - 在 Inno Setup 中使用 WMI 查询列出所有物理打印机