我已经创建了一个安装程序,并且试图设置背景图像。但是背景没有显示在安装页面上的文本和进度条控件的后面,这是它的外观:
这是我用来设置背景的代码:
ExtractTemporaryFile('white.bmp');
InstallTypePage := CreateInputOptionPage(wpSelectDir,
'', '',
'Si eliges la instalación de tipo "Servidor" se creará una base de datos en blanco.',
True, False);
{add white background}
BackImageW := TBitmapImage.Create(WizardForm);
BackImageW.Bitmap.LoadFromFile(ExpandConstant('{tmp}\white.bmp'));
BackImageW.Top := 0;
BackImageW.Left := 0;
BackImageW.Parent := InstallTypePage.Surface;
BackImageW.Align := alCLient;
BackImageW.Stretch := False;
{create radio buttons on page}
InstallTypePageID := InstallTypePage.ID;
InstallTypePage.Add('Servidor');
InstallTypePage.Add('Terminal');
InstallTypePage.Add('Restablecer');
BackImageW := TBitmapImage.Create(WizardForm);
BackImageW.Bitmap.LoadFromFile(ExpandConstant('{tmp}\white.bmp'));
BackImageW.Top := 0;
BackImageW.Left := 0;
BackImageW.Parent := WizardForm.InstallingPage;
BackImageW.Align := alCLient;
BackImageW.Stretch := False;
WizardForm.ProgressGauge.Top := WizardForm.InstallingPage.Height - ScaleY(40);
WizardForm.ProgressGauge.Height := ScaleY(8);
答案 0 :(得分:2)
TNewStaticText
不支持透明度。您可以通过将其替换为TLabel
来解决此问题。参见Inno Setup - Transparency under text in page name and description labels。
但是您的问题不仅是TNewStaticText
,而且还有TNewCheckListBox
和其他控件。 TNewCheckListBox
完全不支持透明性。请参见Transparent components list background in Inno Setup?,您所要做的就是将其背景设置为白色。而且,如果您决定仍然依靠这种方法,则可以使用TNewStaticText
和所有其他控件进行相同的操作。
InstallTypePage.SubCaptionLabel.Color := clWhite;
InstallTypePage.CheckListBox.Color := clWhite;
但是您不能更改TNewProgressBar
的颜色。您将必须绘制一个自定义进度栏。参见How do I change the color of my progress bar in Inno Setup?
有支持主题的Inno Setup克隆。这些可能支持这些控件的透明性。