我的安装程序很简单,它基本上是:
- 欢迎页面
- 进步页面
- 最后一页
欢迎和最终页面是标准的(只有一个按钮)。在进度页面,我正在悄悄地安装一堆其他程序。
实际的脚本是在' [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
)
这就解决了问题!