Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inno Setup Simple progress page for Run section

My installer is very simple, it basically is:

  1. Welcome Page
  2. Progress Page
  3. 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 accurate 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!

like image 627
lepe Avatar asked Jul 25 '26 19:07

lepe


1 Answers

You can control the real progress bar position in code using WizardForm.ProgressGauge.

like image 71
Deanna Avatar answered Jul 28 '26 09:07

Deanna



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!