1

我有一个单一TFormTVertScrollBox。我已经添加了 6TPanels作为 this 的孩子TVertScrollBox

我想遍历每个面板并检查每个面板的Tag属性,但我找不到正确的方法。

为了进行测试,我OnClick为其中一个面板添加了一个事件处理程序,其中包含以下代码:

void __fastcall TForm1::Panel1Click(TObject *Sender)
{
    int i;

    for (i = 0; i < this->VertScrollBox1->ChildrenCount; ++i)
    {
        ShowMessage("Child: " + this->VertScrollBox1->Children[i]->Name);
    }

    for (i = 0; i < this->VertScrollBox1->ComponentCount; ++i)
    {
        ShowMessage("Component: " + this->VertScrollBox1->Components[i]->Name);
    }
}

似乎该ChildrenCount属性总是返回2,并且每个子项的Name显示 byShowMessage是一个空字符串,即使每个面板都有一个唯一的Name属性。

ComponentCount属性始终返回1,并且再次显示Name始终为空字符串。

有人能告诉我使用哪些属性或方法来迭代这些孩子吗?

4

1 回答 1

2

Children & ChildrenCount 是要使用的正确属性,但听起来您的面板存储在滚动框中的容器中。(我已经在其他组件中看到了这一点,并且我不在我的开发机器上进行研究)。

检查两个孩子的班级名称,以及他们的孩子是什么。当您确定了哪个子项(由 ClassName 标识)是容器时,您将知道如何深入到您的面板。

于 2012-04-24T20:16:47.403 回答