德尔福 - 将控制权移至祖先形态

时间:2013-05-13 15:28:40

标签: delphi delphi-xe

我有超过50个表格,它们上面有相同的按钮。所有这些都来自同一个祖先。是否有任何自动方式将该按钮(或任何其他控件)移动到共同的祖先?

2 个答案:

答案 0 :(得分:2)

大卫米罗有正确的答案,但我认为他误解了你想做什么。你不是试图移动那些屁股的位置。

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

如果您之前已编辑过子表单上的按钮,则可以执行此操作。我知道的唯一方法是编辑表单的DFM文件。定义在表单中声明的​​按钮,而不引用父项。继承按钮的前面是INHERIT。您需要添加INHERIT字,它告诉窗体该按钮是继承的。如果这看起来很复杂,只需创建2个按钮并查看差异。这不是太复杂。

困难在于:在创建它之前不能从某些东西继承(父按钮)。并且,您可能在创建父级时遇到一些困难,因为子级已经拥有具有该名称的组件。如果必须,您可以更改名称。但这可以做到。我想这就是你要找的东西。奇怪的是,没有更简单的方法可以做到这一点,因为这样的改进通常首先在子表单中创建。

答案 1 :(得分:1)

在设计时没问题。如果移动父按钮位置,则自动移动子按钮。但如果您移动了子按钮,则此功能不再有效。

解决方案。虽然单调乏味,但是要编辑表单dfm子文件并删除你需要从dfm父文件继承的属性(button.left,button.right等等。)

通过此程序让它再次运作