Hola,
Pues si el "reviente" de la aplicación ocurre al salir del "DBEdit"... tal vez puedas usar su evento "OnExit" para validar la fecha... pero, se me hace raro... ¿no estamos hablando de un componente que guarda texto? Si es así (que no lo sé) ¿cómo es que "revienta" nada si se sale del mismo al escribir una fecha no válida? ¿Quién es el que "revienta"? ¿Quién está al tanto de la fecha que se escribe en el "DBEdit" y si no es válida "revienta"? No lo entiendo muy bien...
Por otro lado, si usas un "botón" para actualizar los cambios "editados"... ¿no podrías ahí mismo validar la fecha? Más aún, ¿no existe un evento "BeforeInsert" o similar que pudieras utilizar? Todo son dudas... ya ves que no te aporto mucho, pero, en fin, a ver si damos con la tecla entre todos.