Gracias, como siempre, por vuestra desinteresada ayuda.
He resuelto el problema, o por lo menos a mí me funciona. Estas son las conclusiones a las que he llegado. (Por si son de utilidad para alguien)
Algunas Condiciones para que funcione Reindexar:
1.- Las tablas master/detail deben estar cerradas (Salvo la que se Reindexa)
2.- Las tablas que compartan Dataset deben estar cerradas (Salvo la que se Reindexa)
3.- Usar Table1.DisableControls para que no interfieran los controles conectados
Así me quedó el código funcionando:
Código Delphi
[-]
procedure Reindexar (Tabla : TTable);
begin
Check (DbiRegenIndexes (Tabla.Handle));
end;
...
TTabla.TableName := ExtractFilename(lstFicheros.FileName);
TTabla.Close;
TTabla.DatabaseName := DirActual;
TTabla.Exclusive := True;
TTabla.TableName := ExtractFilename(lstFicheros.FileName);
TTabla.Open;
TTabla.DisableControls; Reindexar (TTabla);
TTabla.Close; ...
Saludos.