【发布时间】:2016-02-18 03:15:05
【问题描述】:
我想交换出现在我的主窗体的容器中的子窗体。
我找到了一种将一个表单指定为另一个here 的子表单的方法,方法是将其作为主表单上的容器的父级。
procedure TParentForm.EmbeddForm(AParent:TControl; AForm:TCustomForm);
begin
while AForm.ChildrenCount>0 do
AForm.Children[0].Parent:=AParent;
end;
这与我预期的添加子表单的效果非常相似;但是,一旦它已经成为子表单,我似乎无法替换它。
有没有办法从它的容器中取消嵌入这个子表单?
我不想一直销毁这些子表单,而是将它们换掉。
【问题讨论】:
-
您没有重新设置子表单。你正在把它的孩子变成另一种形式的孩子。因此,您可以通过恢复其原始父级来撤消该操作。您需要跟踪您重新设置父级的每个控件,然后将每个控件的父级设置回原始窗体。不过,整个方法似乎很奇怪。框架不是更好吗?或者可能重新设置整个表单。
标签: delphi firemonkey delphi-xe8