我有一个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
属性始终返回2
,Name
为每个子项显示的ShowMessage
是一个空字符串,即使每个面板都有一个唯一的Name
属性。
ComponentCount
属性始终返回1
,并且再次显示的Name
始终为空字符串。
有人可以告诉我使用哪些属性或方法来迭代这些孩子吗?
答案 0 :(得分:2)
儿童与儿童ChildrenCount是正确使用的属性,但听起来您的面板存储在存储在滚动框中的容器中。 (我已经在其他组件中看到了这一点,而且我没有在我的开发机器上进行研究)。
检查两个孩子的班级名字,以及他们的孩子是什么。当您确定哪个孩子(由ClassName标识)是容器时,您将知道如何向下钻取您的面板。