Que tal.
No he seguido todo el hilo... pero he visto que la respuesta mas óptima no esta dada... y es que el TField tiene un método llamado
FocusControl que hace precisamente lo que preguntabas al inicio, de manera que podes hacer un
Código:
for datos := 0 to tabla.FieldCount-1 do
if (tabla.Fields[datos].Required) and (tabla.Fields datos].Text '') then
begin
showmessage('Debe introducir un valor en '+ tabla.Fields datos].DisplayName);
Tabla.Fields[Datos].FocusControl;
exit;
end;
La ventaja de llamar a este método, es que hara que el control asociado al Field tome el foco independientemente de si se trata de un Grid, un DBEdit, un DBLookupCombo, etc.
Por demás... creo que tu verificación no es necesaria, pues al intentar hacer un post, el mismo TDataSet hace algo similar para verificar los campos required.
Hasta luego.