如何将delphi上以TPanel为父级的所有TLabels复制到另一个TPanel?
我在 delphi 表单上有一个 TPanel,我想复制所有 TLabels 当我按下按钮并将它们放置在这个 TPanel 上时 在其他面板中。 有办法做到这一点吗? 谢谢。
I have a TPanel on a delphi form, I want to copy all the TLabels
parented with this TPanel when i press a button and put them
in other panel.
Is there a way to do that?
Thanks.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
要将 TLabel 控件从一个 TPanel 复制到另一个,您可以使用类似的方法
,
也可以使用 RTTI 将属性从一个控件复制到另一个,但由于您没有指定您的 Delphi 版本,所以我仅展示一个简单的示例。
To
copy
the TLabel controls from one TPanel to another you can use something like thisand use like this
you can use the
RTTI
too, to copy the properties from a control to another, but as you does not specify your Delphi version only i show a simple example.TPanel 是组件的容器。它的 Controls 属性中有一个子组件列表。您可以迭代此列表以访问其子项。
按下按钮时,您的代码必须
迭代Panel1的控件列表
检查该控件是否是TLabel
将 TLabel 的 Parent 属性更改为 Panel2
如下所示
但是,等等!,这不起作用。为什么?因为“即时”进行此更改,您将更改正在迭代的同一个列表。
因此,您必须将要移动的标签保存在临时列表中。像这样的东西...
TPanel is a container of Components. It has a list of its child components in its Controls property. You may iterate over this list to get access to its children.
At the press of the button your code has to
iterate on the Controls list of Panel1
check if the control is a TLabel
change the Parent property of the TLabel to be Panel2
something like this
But, wait!, this will not work. Why? Because doing this change 'on the fly' you will be changing the very same list you are iterating over.
So, you have to save the labels to be moved in a temporary list. Something like this...