Показывать фон за элементами управления на пользовательской странице Inno Setup - PullRequest
0 голосов
/ 17 сентября 2018

Я создал установщик и пытаюсь установить изображение для фона.Но фон не отображается за текстом и элементами управления на странице установки, вот как это выглядит:

InstallTypePage InstallingPage

И вот код, который я использую для установки фона:

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);

1 Ответ

0 голосов
/ 18 сентября 2018

TNewStaticText не поддерживает прозрачность. Вы можете исправить это, заменив его на TLabel. См. Inno Setup - Прозрачность под текстом в названиях страниц и метках описания .

Но ваша проблема не только TNewStaticText, но также TNewCheckListBox и другие элементы управления. И TNewCheckListBox вообще не поддерживает прозрачность. См. Фон списка прозрачных компонентов в Inno Setup? Все, что вы можете сделать, это установить его фон в белый цвет. И если вы все равно решите использовать этот подход, вы можете сделать то же самое с TNewStaticText и всеми другими элементами управления.

InstallTypePage.SubCaptionLabel.Color := clWhite;
InstallTypePage.CheckListBox.Color := clWhite;

enter image description here


Вы не можете изменить цвет TNewProgressBar. Вы должны нарисовать пользовательский индикатор выполнения. См. Как изменить цвет индикатора выполнения в Inno Setup?


Есть клоны Inno Setup с поддержкой тем. Они могут поддерживать прозрачность этих элементов управления.

...