在运行时复制TPanel及其所有控件

use*_*336 1 delphi controls runtime delphi-5

德尔福5版.我有一个文件比较应用程序我在一起,它在主窗体上有一个左,右面板.每个面板(pnlLeft和pnlRight)具有相同的控件和事件范围,仅按名称分隔.即btnCheckLeft(...和btnCheckRight(......)我在保持代码更改在两个Panel之间同步时遇到问题.

我想知道我是否可以使用所有控件和事件制作单个Panel(在单独的Form上),然后在运行时将其复制两次,一次用于pnlLeft,另一次用于pnlRight到主窗体.在单个表单上,我可以只管理一次编码,而不是尝试复制所有内容.

在此过程中,将"对齐"和"事件"名称设置为应用于每个副本,如...

第一个复制到空白主表单...

pnlLeft.Align:=alLeft;
pnlLeft.Button1Click(Sender)...
Run Code Online (Sandbox Code Playgroud)

第二份副本

pnlRight.Align:=alLeft;
pnlRight.Button1Click(Sender)...
Run Code Online (Sandbox Code Playgroud)

怎么可能?我想我需要一个完整Panel的Component,但我还不够熟练,无法创建这种复杂性的Component.

我检查了 如何将delphi上TPanel的所有TLabel复制到另一个TPanel?

运行时的复制组件

但不要以为任何一个都会做我需要的.

感谢您提供的任何帮助.

Rob*_*edy 6

解决问题的方法并不在于在运行时复制控件.相反,设计一个TFrame对象.将所有面板特定的代码放在那里,包括它需要的任何控件.然后,只需将其实例化两次,并为每个人指定一个不同的名称.然后你可以参考LeftPanel.btnCheckRightPanel.btnCheck.