du könntest dich wahrscheinlich auch rekursiv durch alle Components durchhangeln, also in etwa:
Delphi-Quellcode:
procedure bla(c: TComponent)
for i := 0 to c.ComponentsCount-1 do begin
bla(c.Components[i])
try
(c.Components[i] as TControl).Caption := str
except
end
end
end