就像我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使它工作。
非常感谢。
答案 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;