No se necesitan tantas variables ya que una vez abierta la tabla, FiledDefs ya no se borra al cerrarla.
Versión 2
Código Delphi
[-]
var
NewField: TStringField;
I: Integer;
begin
if Table1.FieldDefs.Count = 0 then
Table1.Open;
Table1.Close;
for I := 0 to Table1.FieldDefs.Count - 1 do
Table1.FieldDefs[i].CreateField(Table1, nil, Table1.FieldDefs[i].Name);
NewField := TStringField.Create(Table1);
NewField.FieldName := 'Foo';
NewField.Size := 10;
NewField.FieldKind := fkCalculated;
NewField.DataSet := Table1;
Table1.Open;
end;
// Saludos