答案 0 :(得分:1)
我认为这在Inno Setup中是不可能的。也许是一些Inno Setup克隆。
问题是Inno Setup中的所有标签都是TStaticText
,这是不透明的。所以你必须用TLabel
替换所有。还有很多。它们由Inno Setup管理。因此,您必须以某种方式不断将新TStaticText
更新为Inno Setup设置为原始TLabel
的值。甚至可能都不可能。
实际上,可以在您的问题中创建一个页面。但仅仅是因为没有标准的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;
类似的问题:
答案 1 :(得分:1)
也许您可以尝试 Graphical Installer进行Inno设置,这是专为此目的而设计的。
有了它,你可以创建看起来很酷的安装程序,它们支持更改背景(这张图片来自Shadow Tactics游戏的最后一个项目)mod:
我是这个项目的开发人员(商业),所以如果您需要更多信息,请随时询问。