的Delphi-版本5。 我有一个文件比较应用程序我在一起,它在主窗体上有一个左,右面板。每个面板(pnlLeft和pnlRight)具有相同的控件和事件范围,仅按名称分隔。即btnCheckLeft(...和btnCheckRight(......我在保持代码更改在两个面板之间同步时遇到问题。
我想知道我是否可以使用所有控件和事件制作单个Panel(在单独的Form上),然后在运行时将其复制两次,一次用于pnlLeft,另一次用于pnlRight到主窗体。在单个表单上,我可以只管理一次编码而不是尝试复制所有内容。
在此过程中,将“对齐”和“事件”名称设置为应用于每个副本,如...
第一个复制到空白主表单......
pnlLeft.Align:=alLeft;
pnlLeft.Button1Click(Sender)...
第二份副本
pnlRight.Align:=alLeft;
pnlRight.Button1Click(Sender)...
怎么可能?我想我需要一个完整Panel的Component,但我还不够熟练,无法创建这种复杂性的Component。
我查了一下 how to copy all the TLabels parented with a TPanel on delphi to another TPanel?
这个 Duplicating components at Run-Time
但不要以为任何一个都会做我需要的。
感谢您提供任何帮助。
答案 0 :(得分:6)
问题的解决方案不在于运行时复制控件。相反,设计一个TFrame
对象。将所有面板特定的代码放在那里,包括它需要的任何控件。然后,只需将其实例化两次,并为每个人指定一个不同的名称。然后,您可以参考LeftPanel.btnCheck
和RightPanel.btnCheck
。