问题描述
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}})。 WelcomeLabel2
是WelcomeLabel2
,是一个 real 控件。因此它会隐藏您的TStaticText
。
要解决此问题,请执行以下操作:
- 缩小
LabelTarget
的高度,或 - 将您的
WelcomeLabel2
更改为LabelTarget
。