Hola.
Una opción es interceptar el evento
OnSetText del campo asociado que se dispara cada vez que se recibe un nuevo valor pero antes de ser asignado.
Por ejemplo, si el campo asociado al DBEdit se llamase "Numero":
Código Delphi
[-]
procedure TuForm.TuDataSetNumeroSetText( Sender: TField; const Text: string );
var
e: Extended;
begin
if not TryStrToFloat( Text, e ) then
raise Exception.Create( 'No es un número decimal válido' );
end;
Saludos
