Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Custom Welcome and Finished page with stretched image in Inno Setup

I have created an image that I want to appear over whole Welcome and Finished pages of the installer, with only the bottom buttons showing.

The Welcome wizard page should be like:

enter image description here

The Finished page like:

enter image description here

I'm getting

enter image description here

Please help! Thanks in advance😊

like image 698
lone_wolf Avatar asked Jan 10 '16 12:01

lone_wolf


1 Answers

First, note that the Welcome page is disabled by default since Inno Setup 5.5.7. If you really want it, you have to enable it using DisableWelcomePage=no.

To display images only on the pages, you need to do:

  • Stretch WizardBitmapImage (Welcome) and WizardBitmapImage2 (Finished) over their respective parent pages.
  • Hide the other components, mainly the labels.
  • Make sure that the installer never needs to restart the machine, otherwise you get a restart prompt over the image.
  • Make sure you do not have any postinstall entries in the [Run] section, for the same reason.
  • The code is designed for WizardStyle=classic. For modern style it needs to be adjusted.
[Setup]
DisableWelcomePage=no
WizardImageFile=godfather.bmp

[Code]

procedure InitializeWizard();
begin
  { Welcome page }
  { Hide the labels }
  WizardForm.WelcomeLabel1.Visible := False;
  WizardForm.WelcomeLabel2.Visible := False;
  { Stretch image over whole page }
  WizardForm.WizardBitmapImage.Width :=
    WizardForm.WizardBitmapImage.Parent.Width;

  { Finished page }
  { Hide the labels }
  WizardForm.FinishedLabel.Visible := False;
  WizardForm.FinishedHeadingLabel.Visible := False;
  { Stretch image over whole page }
  WizardForm.WizardBitmapImage2.Width :=
    WizardForm.WizardBitmapImage2.Parent.Width;
end;

Finished page with stretched image

like image 80
Martin Prikryl Avatar answered Nov 05 '22 02:11

Martin Prikryl