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

Can not create label on Inno Setup Welcome page

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

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 控件。它是一个虚拟,由表单本身绘制。所以它会被任何其他 real Windows 控件隐藏,即使 TLabel 在技术上位于它之上(它是什么,因为你的 LabelTarget 的创建晚于 WelcomeLabel2)。 WelcomeLabel2TStaticText,什么是真正的控件。所以它隐藏了你的 LabelTarget.

要解决此问题:

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