Inno Setup Simple progress page for Run section

徘徊边缘 提交于 2019-11-28 01:56:27

问题


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!


回答1:


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




回答2:


Found it!

I was missing :

  • Result := True; after ProgressPage.Hide;
  • if CurPageID = wpReady (Instead of wpWelcome)

That solved the problem!



来源:https://stackoverflow.com/questions/6921254/inno-setup-simple-progress-page-for-run-section

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!