Para eso necesitas un poquito de RTTI
Código:
var
PropInfo : PPropInfo;
Component : TComponent;
begin
for i := 0 to Form.ComponentCount - 1 do
begin
Component := Form.Components[i];
// Miramos si tiene la propiedad CAPTION
PropInfo := GetPropInfo( Component.ClassInfo, 'Caption' );
if Assigned(PropInfo) then
SetStrProp(Component, 'Caption', GetIdioma(GetStrProp(Component, 'Hola')));
end;
En el ejemplo, recorremos todos los componentes de un Formulario mirando si tienen la propiedad caption y, si la tienen, asignandole 'Hola'
MODIF.: se me habia olvidado comentar que has de añadir en el uses la unit TypInfo en que le encontrarás otras funciones SetXXXX y GetXXXX según la necesidad del tipo de variable