Inno设置:如何操作注册部分的进度条?

时间:2016-01-04 11:44:51

标签: installer progress-bar inno-setup pascalscript

就像我Inno Setup: How to manipulate progress bar on Run section?中的问题,Martin Prikryl给了我一个很好的建议,我想在注册部分做同样的事情(改变进度表的样式),我的意思是,就在{ {1}}部分,当Inno Setup在Run中注册DLL / OCX(regserver标志)时。

我尝试使用一些[Files]来使其工作,我认为是PageID,将它与值变为100时相比,它变为Marquee样式,但我没有& #39; t使它工作。

非常感谢。

1 个答案:

答案 0 :(得分:3)

在注册之前没有触发任何事件。

您最接近的是使用上一次安装的文件的<{3}} (而不是.dll):

[Files]
Source: "mydll.dll"; DestDir: "{app}"; Flags: regserver
Source: "myfile1"; DestDir: "{app}"
Source: "myfile2"; DestDir: "{app}"
...
Source: "myfileN"; DestDir: "{app}"; AfterInstall: AfterLastFileInstall

[Code]

procedure AfterLastFileInstall;
begin
  Log('Last file installed, file registration is starting');
  WizardForm.ProgressGauge.Style := npbstMarquee;
end;

另一种选择是处理AfterInstall parameter并等待CurProgress = MaxProgress

[Code] 

procedure CurInstallProgressChanged(CurProgress, MaxProgress: Integer);
begin
  if CurProgress >= MaxProgress then
  begin
    Log('Everything is installed, file registration is starting');
    WizardForm.ProgressGauge.Style := npbstMarquee;
  end;
end;