C++ Builder 2009 Итерация / рекурсия через компоненты в форме

Я хочу перебирать компоненты в форме.

Я планирую повторять / повторять компоненты, чтобы вносить массовые изменения в компоненты определенного типа, но для этого мне нужен дескриптор для всех компонентов.

Я проверил Code Complete и Google, но мне не повезло, отвечая на мой собственный вопрос.

1 ответ

Использовать 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;
Другие вопросы по тегам