Pues yo no veo tan claro que los dos códigos hagan lo mismo
Me voy a tirar a la piscina a riesgo de que no haya agua, ya que no tengo aqui Delphi y yo también lo he hecho siempre como comenta Cadetill.
Por lo que digo que no me parece lo mismo es porque AddIndexDef tiene toda la pinta de ser un método que añada elíndice y devuelva un puntero al mismo. Si llamas al método más de una vez, añadirás más de un indice. El mismo cuento lo puedes aplicar a AddFieldDef.
Si no estoy desvariando y la cosa funciona como he dicho (que no lo sé), podría funcionar lo siguiente:
Código Delphi
[-]
with Table2.FieldDefs.AddFieldDef do
begin
Name:='Nombre';
DataType:=ftString;
Required:=true;
end;
Con eso creas uno de los campos... para el resto copy&paste
[/delphi]