迭代TVertScrollBox的孩子

时间:2012-04-24 15:23:03

标签: c++builder firemonkey c++builder-xe2

我有一个TForm只有一个TVertScrollBox。我已添加6 TPanels作为此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属性始终返回2Name为每个子项显示的ShowMessage是一个空字符串,即使每个面板都有一个唯一的Name属性。

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

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

1 个答案:

答案 0 :(得分:2)

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

检查两个孩子的班级名字,以及他们的孩子是什么。当您确定哪个孩子(由ClassName标识)是容器时,您将知道如何向下钻取您的面板。