Search code examples
inno-setuppascalscript

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😊


Solution

  • 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