2012-04-24 10 views
0

私は単一のTFormを持ち、TVertScrollBoxを1つ持っています。この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を返すようで、それぞれのShowMessageで表示Name各パネルに一意のNameプロパティがあるにもかかわらず、これらの子のうち空の文字列です。

ComponentCountプロパティは常に1を返し、再び表示されます。Nameは常に空の文字列です。

これらの子を反復処理するために使用するプロパティまたはメソッドを教えてもらえますか?

答えて

2

子供& ChildrenCountは正しいプロパティですが、パネルがスクロールボックス内に格納されているコンテナに保存されているようです。 (私は他のコンポーネントでこれを見てきましたが、私は開発マシンでは研究していません)。

2人の子供のクラス名とその子供が何であるかを確認します。どの子(ClassNameで識別される)がコンテナであるかを確認したら、パネルにドリルダウンする方法を知っています。

+0

パーフェクト! 'TVertScrollBox'オブジェクトは、' TLayout'型と 'TScrollContent'型の2つの子を報告していました。私のパネルはすべてその 'TScrollContent'オブジェクトの子でした​​。ありがとう – ardnew

関連する問題