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

lep*_*epe 3 inno-setup pascalscript progress-bar

我的安装程序非常简单,基本上是:

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

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

实际的脚本正在安装“[Run]”部分中的每个程序。
问题是进度条达到 100% 后就停留在那里。
我只能更改消息文本。

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

procedure InitializeWizard;
begin
  ProgressPage.SetProgress(1, 100);
  exec(.......)
  ProgressPage.SetProgress(15, 100);
  exec(.......)
  ProgressPage.SetProgress(40, 100);
  ...
  ...
end;
Run Code Online (Sandbox Code Playgroud)

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

[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;
Run Code Online (Sandbox Code Playgroud)

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

我做错了什么?

先感谢您!

Dea*_*nna 5

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