将图像添加到 Inno Setup 卸载程序背景
Adding image to Inno Setup uninstaller background
这是用图像填充 Inno Setup 背景并隐藏内部和外部面板的代码,取自 :
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;
但是如何对卸载页面执行此操作?以上仅适用于安装页面。
实际上,由于卸载表单的结构与安装向导相同,因此卸载代码也几乎相同。您只需要将代码移动到 InitializeUninstallProgressForm
and use UninstallProgressForm
而不是 WizardForm
。并且显然删除对卸载表单上不存在的控件的引用。
要在卸载程序中使用自定义图像,请参阅 。
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;
这是用图像填充 Inno Setup 背景并隐藏内部和外部面板的代码,取自
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;
但是如何对卸载页面执行此操作?以上仅适用于安装页面。
实际上,由于卸载表单的结构与安装向导相同,因此卸载代码也几乎相同。您只需要将代码移动到 InitializeUninstallProgressForm
and use UninstallProgressForm
而不是 WizardForm
。并且显然删除对卸载表单上不存在的控件的引用。
要在卸载程序中使用自定义图像,请参阅
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;