2012-03-29 15 views
6

私は、このようにグループボックスの内側にあるすべての成分TGroupBoxのComponentCountプロパティが0を返すのはなぜですか?

for i := 0 to GroupBox1.ComponentCount -1 do 
    if (GroupBox1.Components[i]) is TWinControl then 
    TWinControl(GroupBox1.Components[i]).Enabled:=False; 

Enabledプロパティを設定しようとしているが、ComponentCountそのiは「何を、常に0を返し、内部のいくつかのコンポーネントでTGroupBoxのを持っています私は行方不明?部品の数はあなたがControlCountControlsプロパティを使用する必要があり、すべての子供コントロールを反復処理するために、コンポーネントによってを所有している取得するために

答えて

14

ComponentCount特性があります。

+4

これをさらに詳しく説明すると、デザイン時に配置されるコンポーネントは、ランタイム時に親の 'TForm'によって**所有されます**その理由は、コンポーネントの' Components'リストには表示されません'TGroupBox'です。代わりに 'TForm'の' Components'リストにあります。 –

-1
for i := 0 to GroupBox1.ControlCount - 1 do 
    if (GroupBox1.Controls[i]) is TWinControl then 
     TWinControl(GroupBox1.Controls[i]).Enabled:=False; 
+2

コードの説明は、役に立つ答えを得るための長い道のりです。 –

+0

stackoverflowで、Pythonはしばしばコードを表示するだけで答えます。実際には、いくつかの質問に対して非常に簡潔で役立つフォームです。私はデルファイにとってもそれほど悪い考えではないと思っていますが、いくつかの言葉でも何もないより優れています。 –

関連する問題