Delphi-将控件移动到祖先窗体

Delphi-将控件移动到祖先窗体,delphi,delphi-xe,Delphi,Delphi Xe,我有50多张表格,上面有相同的按钮。他们都来自同一个祖先。是否有任何自动方式将该按钮(或任何其他控件)移动到公共祖先 在设计时没有问题。如果移动父按钮位置,则会自动移动子按钮。但如果移动了“子”按钮,则此操作将不再有效 解决办法。尽管繁琐,但编辑表单dfm子文件并删除需要从dfm父文件继承的属性(button.left、button.right等)仍然是一项艰巨的任务 使用此步骤,在设计时使其重新工作没有问题。如果移动父按钮位置,则会自动移动子按钮。但如果移动了“子”按钮,则此操作将不再有效 解

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

在设计时没有问题。如果移动父按钮位置,则会自动移动子按钮。但如果移动了“子”按钮,则此操作将不再有效

解决办法。尽管繁琐,但编辑表单dfm子文件并删除需要从dfm父文件继承的属性(button.left、button.right等)仍然是一项艰巨的任务


使用此步骤,在设计时使其重新工作没有问题。如果移动父按钮位置,则会自动移动子按钮。但如果移动了“子”按钮,则此操作将不再有效

解决办法。尽管繁琐,但编辑表单dfm子文件并删除需要从dfm父文件继承的属性(button.left、button.right等)仍然是一项艰巨的任务


通过这个程序,让它重新工作

大卫·米罗得到了正确的答案,但我认为他误解了你想要做的事情。你不是想移动巴特顿的位置

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

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


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

David Miro给出了正确的答案,但我认为他误解了您想要做的事情。你不是想移动巴特顿的位置

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

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


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

为.pas和.dfm编写一个编辑脚本files@DavidMiró-design time.为.pas和.dfm编写编辑脚本files@DavidMiró-设计时间。是的,这是一个问题。我知道从父母到继承的孩子会发生什么。所以,除了制作脚本之外,从孩子到家长没有其他方法可以做到这一点。是的,这是一个问题。我知道从父母到继承的孩子会发生什么。因此,除了制作脚本之外,没有一种从孩子到家长的方法可以做到这一点。