Creo que el evento adecuado para este tipo de manipulaciones es OnSetText del TField.
El OnValidate es adecuado para hacer validaciones, de manera que pueda producirse un error si el valor no es adecuado, pero no para hacer una Re-asignación del field.
Saludos.