Inno Setup - Прозрачность под текстом в имени страницы и метки описания
1 ответ
PageNameLabel
а также PageDescriptionLabel
являются TNewStaticText
компоненты. Этот компонент не поддерживает прозрачность. Хоть TLabel
Компонент, имеющий аналогичные функциональные возможности, поддерживает прозрачность ( в версии Inno Setup для Unicode и только с тематическими версиями Windows).
Таким образом, вы можете заменить эти два компонента TLabel
эквивалент. И затем вам нужно убедиться, что подписи ваших новых пользовательских компонентов обновляются всякий раз, когда Inno Setup обновляет исходные компоненты. Для этих двух компонентов это довольно просто, поскольку они обновляются только при изменении страницы. Таким образом, вы можете обновить свои пользовательские компоненты из CurPageChanged
функция события.
function CloneStaticTextToLabel(StaticText: TNewStaticText): TLabel;
begin
Result := TLabel.Create(WizardForm);
Result.Parent := StaticText.Parent;
Result.Left := StaticText.Left;
Result.Top := StaticText.Top;
Result.Width := StaticText.Width;
Result.Height := StaticText.Height;
Result.AutoSize := StaticText.AutoSize;
Result.ShowAccelChar := StaticText.ShowAccelChar;
Result.WordWrap := StaticText.WordWrap;
Result.Font := StaticText.Font;
StaticText.Visible := False;
end;
var
PageDescriptionLabel: TLabel;
PageNameLabel: TLabel;
procedure InitializeWizard();
begin
{ ... }
{ Create TLabel equivalent of standard TNewStaticText components }
PageNameLabel := CloneStaticTextToLabel(WizardForm.PageNameLabel);
PageDescriptionLabel := CloneStaticTextToLabel(WizardForm.PageDescriptionLabel);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
{ Update the custom TLabel components from the standard hidden components }
PageDescriptionLabel.Caption := WizardForm.PageDescriptionLabel.Caption;
PageNameLabel.Caption := WizardForm.PageNameLabel.Caption;
end;
Намного проще изменить оригинальный цвет фона меток:
Inno Setup - изменение размера имени страницы и меток описания