Inno Setup Simple progress page for Run section
My installer is very simple, it basically is:
- Welcome Page
- Progress Page
- Final Page
The Welcome and Final pages are standard (just one button). At the Progress page I'm installing a bunch of other programs silently.
The actual script is installing each program inside the `[Run] section.
The problem is that the bar reaches 100% and then stays there. I'm only able to change the message text.What I would like to achieve is to show the progress using Pascal Script (as it may allow me to have more flexibility), something like:
procedure InitializeWizard;
begin
ProgressPage.SetProgress(1, 100);
exec(.......)
ProgressPage.SetProgress(15, 100);
exec(.......)
ProgressPage.SetProgress(40, 100);
...
...
end;
That way I can show a more accur开发者_JAVA百科ate progress bar. This is what I have (simulating installation. Taken from an example):
[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;
The problem is that when I build the installer it doesn't show the Welcome page (the installer is running, but nothing is shown).
What I'm doing wrong?
Thank you in advance!
You can control the real progress bar position in code using WizardForm.ProgressGauge
.
Found it!
I was missing :
Result := True;
afterProgressPage.Hide;
if CurPageID = wpReady
(Instead ofwpWelcome
)
That solved the problem!
精彩评论