C ++ Builder 2009通过表单上的组件迭代/递归

时间:2013-12-13 20:37:04

标签: components c++builder c++builder-2009

我希望迭代/递归表单上的组件。

我计划迭代/递归组件以对特定类型的组件进行批量更改,但为了做到这一点,我需要一个所有组件的句柄。

我检查了Code Complete和Google,但没有任何运气回答我自己的问题。

1 个答案:

答案 0 :(得分:0)

使用TWinControl.Controls[]属性,例如:

Procedure DoSomething(AControl: TWinControl);
Var
  I: Integer;
  Ctrl: TControl;
Begin
  If AControl is TSomeControl then
  Begin
    ...
  End;
  For I := 0 to AControl.ControlCount-1 do
  Begin
    Ctrl := AControl.Controls[I];
    If Ctrl is TWinControl then
      DoSomething(TWinControl(Ctrl));
  End; 
End;

Procedure TMyForm.DoIt;
Begin
  DoSomething(Self);
End;