Por fin...
A ver, tenía en el código lo siguiente:
Código Delphi
[-]
IdxList := TIndexDefs.Create(nil);
IdxList.Assign(tbl.IndexDefs);
Para guardarme los índices, porque lo que hago es crear desde cero una copia del DBF...
Pues eso en D5 funciona y en D7 no, con índices Expression...
Creo que tiene algo que ver con que al asignar la propiedad Expression del TIndexDef correspondiente se limpia el Fields y viceversa, al final tengo.
Código Delphi
[-]
IdxList := TIndexDefs.Create(nil);
for i := 0 to tbl.IndexDefs.Count - 1 do
begin
o := tbl.IndexDefs[i];
d := IdxList.AddIndexDef;
d.Name := o.Name;
d.Options := o.Options;
d.Source := o.Source;
if o.Expression <> '' then
d.Expression := o.Expression
else
d.Fields := o.Fields;
end;
Bueno... solucionado. Gracias a todos.