gpt4 book ai didi

delphi - 如何在Builder XE6的运行时动态添加组件?

转载 作者:行者123 更新时间:2023-12-03 19:51:03 27 4
gpt4 key购买 nike

我想在运行时将新面板添加到表单中,但是我遇到的问题是,将它们与顶部对齐时,它们的显示顺序不符合我创建它们的顺序。

我按照本文的提示使用DisableAlign()和EnableAlign()
How to dynamically create controls aligned to the top but after other aligned controls?
这适用于我添加的最初的四个面板。

__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
TPanel * test;
Panel1->DisableAlign();

for(int i = 0; i<4; i++){
test = new TPanel(Panel1);
test->Caption = i;
test->Parent = Panel1;
test->Align = alTop;
}
Panel1->EnableAlign();
}


Screen 1

但是然后我想在单击按钮时添加另一个面板:

    void __fastcall TForm1::Button1Click(TObject *Sender)
{
Panel1->DisableAlign();

TPanel * test;
test = new TPanel(Panel1);
test->Caption = 5;
test->Parent = Panel1;
test->Align = alTop;

Panel1->EnableAlign();
}


这出现了:

Screen 2

有什么方法可以使对齐方式执行我想要的操作而不会弄乱“顶部设置”或不重建整个表单吗?

最佳答案

这很简单。在设置Top之前,必须将Align设置为适当的值。将Top设置为底部面板底部的坐标。

关于delphi - 如何在Builder XE6的运行时动态添加组件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32758949/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com