TMemoField OnValidate's but Value = ''

I have a TMemoField in a TDBMemo. The TMemoField has an OnValidate event
which gets fired when tabbing out of the control. However, the value of the
TMemoField at that point is set to '' (i.e. empty string) even if the user
has typed something into the DBMemo. Only following when the OnExit event of
the DBMemo gets called does the Field.Value of the DBMemo show the text the
user has entered.

How can I ensure when the TMemoField.OnValidate method is called that the
Value of the TMemoField is up to date (i.e. equals what the user has type
in)?

NB. I realise I could get the value at that point from the DBMemo, but don't
want to do that as it will explicitly tie the user interface tier to the
database/table/field tier. I want the validation in my datamodule to be
independent of whatever form might be using it.

TIA,

Peter
UK

Contrary to other posts I have seen surrounding TMemoField's