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



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

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

欢迎和最终页面是标准的(只有一个按钮)。在进度页面,我正在悄悄地安装一堆其他程序。

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

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

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在代码中控制实际进度条的位置。

找到了!

I was missing:

  • Result := True;ProgressPage.Hide;
  • if CurPageID = wpReady(代替wpWelcome)

这就解决了问题!

相关内容

  • 没有找到相关文章

最新更新