在这种特殊情况下,我使用PowerPDF库来动态构建 PDF 文档,但这同样适用于在父控件内按顺序动态对齐控件的一般概念。在这个库中,TPRPage
是包含所有元素控件的基本控件,在这种情况下,是TPRLayoutPanel
.
动态添加控件时我会做什么:
- 创建控件 (
TPRLayoutPanel
) - 设置控件的父级 (
TPRPage
) - 将控件顶部对齐 (
PRLayoutPanel.Align:= alTop;
)
问题是它被强制到页面的最开始(顶部)而不是最后(底部)。
我试过设置它的顺序PRLayoutPanel.SendToBack;
,PRLayoutPanel.BringToFront
但没有运气。
如何在父控件中按顺序动态创建和对齐多个控件?我目前唯一的解决方法是以相反的顺序(从头到尾)添加控件,这是非常不必要的。
这是我的通用函数,它在此父项中创建对齐控件的每个新实例:
function TfrmReport.InsertPanel: TPRLayoutPanel;
begin
Result:= TPRLayoutPanel.Create(PRPage);
Result.Parent:= PRPage;
Result.Align:= alTop;
Result.Height:= 40; //Default, may change later
end;