Hola
Pues hasta donde se no es posible recorrer asi los campos de un record ya que no es una estructura vectorial. Lo que se me ocurre es crear una clase y simular recorrer como indice los campos
Código Delphi
[-]TMiclase=class
private
FCampo1:integer;
FCampo2:string;
Procedure SetFields(i:integer;Value:variant);
Functon GetFields(i:integer):variant;
public
Property Fields[i:integer]:variant read GetFields write SetFields;
end;
Y en la implementacion devuelves el valor que quieras de acuerdo al indice
Código Delphi
[-]Function TMiclase.GetFields(i:integer):variant;
begin
case i of
0:result:=FCampo1;
end;
end;
Espero sea util
Saludos