1

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

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

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

第一个副本到空白主窗体...

pnlLeft.Align:=alLeft;
pnlLeft.Button1Click(Sender)...

第二份

pnlRight.Align:=alLeft;
pnlRight.Button1Click(Sender)...

这怎么可能?我认为我需要一个完整面板的组件,但我还没有足够的技能来创建这种复杂性的组件。

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

和这个 在运行时复制组件

但不要认为两者都会做我需要的。

感谢您提供任何帮助。

4

1 回答 1

6

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

于 2013-06-06T17:52:29.373 回答