2013-05-13 68 views
0

我有50多个表单上有相同的按钮。所有这些都来源于同一个祖先。有没有自动的方法将该按钮(或任何其他控件)移动到共同的祖先?德尔福 - 移动控制到祖先的形式

+1

编辑.pas和.dfm文件的脚本 – 2013-05-13 15:34:59

+0

运行时或设计? – 2013-05-14 10:23:09

+0

@DavidMiró - 设计时间。 – RBA 2013-05-14 16:33:50

回答

2

David Miro有正确的答案,但我认为他误解了你想做的事情。你并没有试图改变这个按钮的位置。

如果您尚未编辑子窗体上的按钮,则可以在父项上添加一个新按钮。它会自动显示在每个子窗体上。这将是一个新的按钮,它必须有不同的名称,但每个表单上都会有一个继承的按钮。然后,您需要编辑每个子窗体以删除原始按钮。你将有一个按钮,它会被继承。如果事件处理程序总是相同的,那么也可以将其编码到父项中。

如果您之前编辑过子窗体上的按钮,可以这样做。我知道的唯一方法是编辑表单的DFM文件。在窗体中声明的按钮被定义为没有任何父对象的引用。继承的按钮在其前面定义了一个INHERIT。你需要添加INHERIT单词,它告诉表单该按钮是被继承的。如果这听起来很复杂,只需创建2个按钮并查看其差异。这并不太复杂。

难度是这样的:你不能从创建它之前的东西继承(父按钮)。而且,创建父项可能会遇到一些困难,因为孩子已经拥有了一个具有该名称的组件。如果必须,您可以更改名称。但是这可以做到。我认为这是你正在寻找的。奇怪有没有更简单的方法来做到这一点,因为像这样的改进通常首先在子表单中创建。

1

在设计时没问题。如果移动父按钮位置,则会自动移动子按钮。但是如果你移动了子按钮,那么这不再起作用。

解决方案。虽然繁琐,编辑表格DFM子文件并删除您需要从DFM父文件继承属性(button.left,button.right,等..)

有了这个程序得到它的工作

+0

是的,这是一个问题。我知道从父母继承儿童形式会发生什么。所以除了制作脚本外,没有办法从儿童到父母这样做。 – RBA 2013-05-16 06:41:08