无法在Inno Setup欢迎页面上创建标签

问题描述

我正在尝试使用以下代码在欢迎页面上创建标签(或位图):

LabelTarget := TLabel.Create(WizardForm);
with LabelTarget do
begin
  Parent := WizardForm.WelcomePage;
  Left := ScaleX(198);
  Top := ScaleY(105);
  Caption := 'Target';
end;

它不起作用,但是如果我将父级更改为WizardForm.InstallingPage,它将在“安装”页面上创建该标签。问题出在哪里?

解决方法

这是因为WelcomePage的几乎整个区域都被不透明的WelcomeLabel2覆盖。

TLabel不是真正的Windows控件。这是一个虚拟,由表单本身绘制。因此,即使TLabel在技术上位于其上,它也会被任何其他 real Windows控件隐藏(实际上是这样,因为LabelTarget的创建要晚于{ {1}})。 WelcomeLabel2WelcomeLabel2,是一个 real 控件。因此它会隐藏您的TStaticText

要解决此问题,请执行以下操作:

  • 缩小LabelTarget的高度,或
  • 将您的WelcomeLabel2更改为LabelTarget