我做了一个Delphi应用程序与德尔福,但我有一个奇怪的行为。这是情况。德尔福克隆布局
我有一个TLayout(称为InputLayout),它包含了GridPanelLayout
。我必须复制InputLayout这里面格但我得到这样的结果:
结果当然是我在左边的一个。你可以看到,这是而不是我在找什么,因为我想有一个上面的网格的确切副本。最后的结果必须是两个GridPanelLayout,其中第二个放置在第一个之下。这是代码:
procedure TForm1.Button3Click(Sender: TObject);
var c: TGridPanelLayout;
begin
try
c := TGridPanelLayout(InputLayout.Children[0].Clone(InputLayout));
c.Align := TAlignLayout.Top;
InputLayout.AddObject(c);
except
// ...
end;
end;
什么是错?请注意,InputLayout
是包含GridPanelLayout的布局,并且该组件是唯一的,所以我可以安全地使用0索引进行访问。
设计时间'GridPanelLayout'似乎没有对齐到顶部。目前还不清楚'GridPanelLayout'有多少列和行。当我尝试你的问题时(有3列,1行和第一个'GridPanelLayout'对齐顶部),如果我最小化和恢复表单,我会得到一些消失的绘制文物。试试发生了什么,并添加到您的问题。 –
@TomBrunberg是的,它与顶部对齐(设计时布局中的一个)。我是否也必须将克隆的那个放到TAlignLayout.Top中?我正在使用该代码,但即使我调整了不起作用的页面。这可能是一个错误? –
我想我已经找到了解决方案,但它适用于TGridLayout。出于某些原因,GridPanelLayout不能很好地工作,而且我的行为与@TomBrunberg相同。 –