简体   繁体   中英

Adding image to Inno Setup uninstaller background

This is the code to fill the background of the Inno Setup with an image, and hide the inner and outer panels, taken from Inno Setup - Image as installer background :

procedure InitializeWizard();
var
  BackImage: TBitmapImage;
begin
  { Hide top panel }
  WizardForm.MainPanel.Visible := False;

  { Adjust "select dir" page controls for a stretched inner page size }
  WizardForm.DirEdit.Left :=
    WizardForm.DirEdit.Left + WizardForm.InnerNotebook.Left;
  WizardForm.DirEdit.Top := WizardForm.DirEdit.Top + WizardForm.InnerNotebook.Top;
  WizardForm.DirBrowseButton.Left :=
    WizardForm.DirBrowseButton.Left + WizardForm.InnerNotebook.Left;
  WizardForm.DirBrowseButton.Top :=
    WizardForm.DirBrowseButton.Top + WizardForm.InnerNotebook.Top;

  { Hide non-transparent labels }    
  WizardForm.DiskSpaceLabel.Visible := False;
  WizardForm.SelectDirBrowseLabel.Visible := False;
  WizardForm.SelectDirLabel.Visible := False;

  { Stretch the outer page across whole form }
  WizardForm.OuterNotebook.Width := WizardForm.ClientWidth;
  WizardForm.OuterNotebook.Height := WizardForm.ClientHeight;

  { Stretch the inner page across whole outer page }
  WizardForm.InnerNotebook.Left := 0;
  WizardForm.InnerNotebook.Top := 0;
  WizardForm.InnerNotebook.Width := WizardForm.OuterNotebook.ClientWidth;
  WizardForm.InnerNotebook.Height := WizardForm.OuterNotebook.ClientHeight;

  { Put buttons on top of the page (image) }
  WizardForm.BackButton.BringToFront()
  WizardForm.NextButton.BringToFront();
  WizardForm.CancelButton.BringToFront();

  { Add a background image }    
  BackImage := TBitmapImage.Create(WizardForm);
  BackImage.Parent := WizardForm.SelectDirPage;
  BackImage.Top := 0;
  BackImage.Left := 0;  
  { ... }
  BackImage.Bitmap.LoadFromFile(...);
end;

But how to do this for uninstall pages? The above works only for the install pages.

Well, actually as the uninstall form is structured the same way as the install wizard, the code for uninstall will be pretty much the same. You just need to move the code to InitializeUninstallProgressForm and use UninstallProgressForm instead of WizardForm . And obviously remove the references to controls that do not exist on the uninstall form.

For using custom images in uninstaller, see Inno Setup: Reading a file from installer during uninstallation .

procedure InitializeUninstallProgressForm();
var
  BackImage: TBitmapImage;
begin
  { Hide top panel }
  UninstallProgressForm.MainPanel.Visible := False;

  { Stretch the outer page across whole form }
  UninstallProgressForm.OuterNotebook.Width :=
    UninstallProgressForm.ClientWidth;
  UninstallProgressForm.OuterNotebook.Height :=
    UninstallProgressForm.ClientHeight;

  { Stretch the inner page across whole outer page }
  UninstallProgressForm.InnerNotebook.Left := 0;
  UninstallProgressForm.InnerNotebook.Top := 0;
  UninstallProgressForm.InnerNotebook.Width :=
    UninstallProgressForm.OuterNotebook.ClientWidth;
  UninstallProgressForm.InnerNotebook.Height :=
    UninstallProgressForm.OuterNotebook.ClientHeight;

  { Put buttons on top of the page (image) }
  UninstallProgressForm.CancelButton.BringToFront();

  { Add a background image }    
  BackImage := TBitmapImage.Create(UninstallProgressForm);
  BackImage.Parent := UninstallProgressForm.InstallingPage;
  BackImage.Top := 0;
  BackImage.Left := 0;  
  BackImage.SetBounds(
    0, 0, UninstallProgressForm.InnerPage.ClientWidth,
    UninstallProgressForm.InnerPage.ClientHeight);
  BackImage.Stretch := True;
  BackImage.AutoSize := False
  BackImage.Anchors := [akLeft, akTop, akRight, akBottom];
  { ... }
  BackImage.Bitmap.LoadFromFile(...);
end;

在此处输入图像描述

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM