【发布时间】:2018-01-24 07:13:58
【问题描述】:
众所周知,TPanel 是其他可视组件(TLabel、TEdit 等)的容器。
但是,似乎我们只能放置新组件(来自
组件调色板)到现有的 TPanel 上,然后 VCL 框架将自动将 TPanel 设为其父级)。
我想知道是否有办法将现有的可视组件(那些已经在我们的 VCL 表单上的组件)放置到 TPanel 上。我试过了
在现有的 TPanel 上放置组件(这不起作用,因为 框架不会将 TPanel 设为其父级)
手动编辑表单的 dfm 文件(TPanel 上的组件 现在是不可见的——一个错误?)
-
在代码中显式设置组件的 Parent 属性(
Label1可见,即使Panel1高度设置为 0)Label1->Parent = Panel1;
上述方法都不起作用,但这似乎是一个基本的事情,它必须是一种方法来做到这一点。
谢谢
【问题讨论】:
-
试图移动结构视图树中的控件?
-
我尝试手动编辑 dfm,以便控件是相关 TPanel 的子项。没用。控件现在完全不可见。
-
当您尝试移动结构视图树中的控件时会发生什么?您还应该查看
Left和Top属性。 -
“移动结构视图树中的控件”到底是什么意思?我想我只能在设计时手动移动控件或编辑 dfm 文件。无论如何,如果没有其他工作,我将简单地向我的 TPanel 添加新控件,这将工作,但这是稍微多一点工作。
-
IDE 有一个名为“结构”的视图,它在设计时显示表单的结构。您可以通过主菜单“查看”打开它。在那里您可以拖放项目以更改其父项。