Código Delphi
[-]
procedure TL2PacketHackMain.ChangeLang(L:string);
var C: TControl;
I: Integer;
begin
if not (L = 'NoLang') then
for i:=0 to Form1.ControlCount-1 do
begin
C:= Form1.Controls[i];
If C is TButton then
TButton(C).Caption:=Language.ReadString(L, TButton(C).Caption, 'NoText');
If C is TLabel then
TLabel(C).Caption:=Language.ReadString(L, TLabel(C).Caption, 'NoText');
end;
end;
Aunque con tu ejemplo no lo dejas claro, deduje que lo que pretendías hacer es recorrer la lista de componentes y asignarle a cada uno el valor que le corresponde a su propiedad caption (si la tiene) o hint. En el pedazo de código que te pongo yo, realiza en parte lo que pides, pero para que funcione correctamente tendrás que asignar una identificación a cada componente para que pueda tomar el valor que le corresponde, sino todos adquirirán el mismo valor.
Un saludo.