Pues me resulta raro Jose Luís, porque yo utilizo mi componente
TKeysOnForm, que al final hace uso de un código similar a ese:
Código Delphi
[-]
...
if Self.FEnterAsTab then begin
...
try
ParentForm.Perform (WM_NEXTDLGCTL, Integer(goNEXTCTL), 0);
except
on E:EDataBaseError do begin
Y funciona perfectamente, también con el comportamiento de seleccionar el contenido que hay escroito en el Edit.
Si quieres bájalo y haz la prueba; Échale un vistazo al resto de código fuente.