Uffff... Hombre casi que no...
Fue una gran ventaja el que hayas colgado el programa y la verdad es que con el locate siempre marcaba 1, ¿La razón? pues si alguien del foro puede explicarla yo también le agradecería la respuesta...
La cosa quedo así:
en el procedimiento Button3Click:
Código Delphi
[-]
var
i:word;
begin
i:=0;
Repeat
i:=i+1;
until not (cds.FindKey([i])); ShowMessage(IntToStr(i));
end;
y al objeto CDS le hice los siguientes cambios...
1. Por medio de su editor de campos le agregue el campo Dibujo de tipo Word, tal y cual como lo tenias en su FieldDefs.
2. En IndexDefs Agregue el campo dibujo, especificando su propiedad Fields como "Dibujo".
3. Y por ultimo y para activar dicho índice seleccione en la propiedad IndexFieldName (Adivinen que) el campo Dibujo.
Y listo, ya me hace lo que quieres...
Bueno Espero que te sirva esta solución.
P.D: cuelgo la aplicación para que vean los cambios en hechos.