Inno setup Inno安装程序上的欢迎标签透明

Inno setup Inno安装程序上的欢迎标签透明,inno-setup,Inno Setup,如何在Inno设置中显示标签,并且只在图像上留下文本 这就是我想要的 我担心,即使创建自定义页面,您想要的内容也可能不可能或相当困难。请查看Inno安装程序中包含的函数和示例脚本。类似的内容可能会起到作用。由于欢迎标签不支持透明度,您需要通过使用不同的类(具有透明度支持)创建自己的类来解决此问题,继承父类、字体、文本和大小,并隐藏原始类。以下是如何执行此操作的脚本: [Code] procedure InheritBoundsRect(ASource, ATarget: TControl); b

如何在Inno设置中显示标签,并且只在图像上留下文本

这就是我想要的


我担心,即使创建自定义页面,您想要的内容也可能不可能或相当困难。请查看Inno安装程序中包含的函数和示例脚本。

类似的内容可能会起到作用。由于欢迎标签不支持透明度,您需要通过使用不同的类(具有透明度支持)创建自己的类来解决此问题,继承父类、字体、文本和大小,并隐藏原始类。以下是如何执行此操作的脚本:

[Code]
procedure InheritBoundsRect(ASource, ATarget: TControl);
begin
  ATarget.Left := ASource.Left;
  ATarget.Top := ASource.Top;
  ATarget.Width := ASource.Width;
  ATarget.Height := ASource.Height;
end;

procedure InitializeWizard;
var
  TopWelcomeLabel: TLabel;
  BottomWelcomeLabel: TLabel;
begin
  WizardForm.WizardBitmapImage.Align := alClient;
  WizardForm.WizardBitmapImage.Bitmap.LoadFromFile('D:\Image.bmp');

  TopWelcomeLabel := TLabel.Create(WizardForm);
  TopWelcomeLabel.Parent := WizardForm.WelcomeLabel1.Parent;
  TopWelcomeLabel.Font := WizardForm.WelcomeLabel1.Font;
  TopWelcomeLabel.Caption := WizardForm.WelcomeLabel1.Caption;
  TopWelcomeLabel.WordWrap := WizardForm.WelcomeLabel1.WordWrap;
  InheritBoundsRect(WizardForm.WelcomeLabel1, TopWelcomeLabel);
  WizardForm.WelcomeLabel1.Visible := False;

  BottomWelcomeLabel := TLabel.Create(WizardForm);
  BottomWelcomeLabel.Parent := WizardForm.WelcomeLabel2.Parent;
  BottomWelcomeLabel.Font := WizardForm.WelcomeLabel2.Font;
  BottomWelcomeLabel.Caption := WizardForm.WelcomeLabel2.Caption;
  BottomWelcomeLabel.WordWrap := WizardForm.WelcomeLabel2.WordWrap;
  InheritBoundsRect(WizardForm.WelcomeLabel2, BottomWelcomeLabel);
  WizardForm.WelcomeLabel2.Visible := False;
end;
结果是:


此代码可以帮助您。只需更改欢迎页面,但您可以尝试安装程序的其他页面

[code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;
end;

function GetCustomSetupExitCode(): Integer;
begin
  Result := 1;
end;

procedure InitializeWizard();
var
  WLabel1, WLabel2,
  FLabel1, FLabel2: TLabel;
begin
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;
  WizardForm.FinishedHeadingLabel.Hide;
  WizardForm.FinishedLabel.Hide;
  WizardForm.WizardBitmapImage.Width := 500;
  WizardForm.WizardBitmapImage.Height := 315;

  WLabel1 := TLabel.Create(WizardForm);
  WLabel1.Left := ScaleX(176); 
  WLabel1.Top := ScaleY(16);
  WLabel1.Width := ScaleX(301); 
  WLabel1.Height := ScaleY(54); 
  WLabel1.AutoSize := False;
  WLabel1.WordWrap := True;
  WLabel1.Font.Name := 'verdana'; 
  WLabel1.Font.Size := 12; 
  WLabel1.Font.Style := [fsBold];
  WLabel1.Font.Color:= clBlack; 
  WLabel1.ShowAccelChar := False;
  WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
  WLabel1.Transparent := True;
  WLabel1.Parent := WizardForm.WelcomePage;

  WLabel2 :=TLabel.Create(WizardForm);
  WLabel2.Top := ScaleY(76);
  WLabel2.Left := ScaleX(176); 
  WLabel2.Width := ScaleX(301); 
  WLabel2.Height := ScaleY(234); 
  WLabel2.AutoSize := False;
  WLabel2.WordWrap := True;
  WLabel2.Font.Name := 'tahoma'; 
  WLabel2.Font.Color:= clBlack; 
  WLabel2.ShowAccelChar := False;
  WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
  WLabel2.Transparent := True;
  WLabel2.Parent := WizardForm.WelcomePage;

  WizardForm.WizardBitmapImage2.Width := 500; 
  WizardForm.WizardBitmapImage2.Height := 315; 

  FLabel1 := TLabel.Create(WizardForm); 
  FLabel1.Left := ScaleX(176); 
  FLabel1.Top := ScaleY(16);
  FLabel1.Width := ScaleX(301); 
  FLabel1.Height := ScaleY(54); 
  FLabel1.AutoSize := False;
  FLabel1.WordWrap := True;
  FLabel1.Font.Name := 'verdana'; 
  FLabel1.Font.Size := 12; 
  FLabel1.Font.Style := [fsBold];
  FLabel1.Font.Color:= clBlack; 
  FLabel1.ShowAccelChar := False;
  FLabel1.Caption := WizardForm.FinishedHeadingLabel.Caption;
  FLabel1.Transparent := True;
  FLabel1.Parent := WizardForm.FinishedPage;

  FLabel2 :=TLabel.Create(WizardForm);
  FLabel2.Top := ScaleY(76);
  FLabel2.Left := ScaleX(176); 
  FLabel2.Width := ScaleX(301); 
  FLabel2.Height := ScaleY(53); 
  FLabel2.AutoSize := False;
  FLabel2.WordWrap := True;
  FLabel2.Font.Name := 'tahoma'; 
  FLabel2.Font.Color:= clBlack; 
  FLabel2.ShowAccelChar := False;
  FLabel2.Caption := WizardForm.FinishedLabel.Caption;
  FLabel2.Transparent := True;
  FLabel2.Parent := WizardForm.FinishedPage;
end;

谢谢你的回复。我不理解很多脚本,如果你有任何例子给我看,我会很好。这个脚本可以优化,但我需要了解你对InnoSetup Pascal脚本或Pascal的了解程度。但首先我需要你的一些反馈…特拉玛,非常感谢你。这正是我想做的。我的问题得到了你100%的回答。很抱歉回答晚了。通过快速查看脚本,您似乎正在使用原始标签(
WelcomeLabel1
WelcomeLabel2
)。如果您想要透明标签,您需要从
TLabel
类创建自己的标签,并隐藏那些
WelcomeLabel1
WelcomeLabel2
。您好,@Andrezork,对不起,如果没有正确的格式,这将花费我很长时间(嵌套的
语句实际上是这种脚本最糟糕的用法)。但对于您的问题,进度条自然是透明的,或者看起来是透明的,请参见,例如。带有复选框,由于它不透明且不支持透明,因此情况更糟。但是,如果您将其大小精确调整为框的一部分,并为其标题添加一个额外的标签,则可以将您的复选框模拟为透明。不幸的是,不会有鼠标hov呃,关于标题部分。你好,特拉玛,再次感谢你的帮助。我将尝试以其他方式安装此安装程序。这不是很重要,我只想以不同的方式在我的电脑中组织我的游戏。再次感谢你的提示和帮助。祝你好运。你尝试过使用吗?