Creo que si la tabla está en modo inserción o el n1 de registros es 0 el valor de Recno es -1. Por lo tanto si pones
Código Delphi
[-]if (tabla.State = dsinsert) or (Tabla.RecordCount <=0) then
registro:= 0
else
registro:= Tabla.REcno;
debiera funcionarte.
Suerte y un saludo