Cita:
|
Empezado por Pablo Carlos
ya hare las pruebas para tratar de elegir el mejor evento...
|
Lamento informarte que creo que no lo encontrarás.
Hasta donde he visto la situación es así: cuando intentas pasar el foco a otro control, Delphi genera el mensaje CM_EXIT. El DBEdit maneja este mensaje más o menos así:
Código:
Validate;
DoExit;
Es en Validate (el nombre no es exacto) donde se produce la excepción y no es sino hasta DoExit donde se llama al evento OnExit, pero en caso de una excepción nunca se llega a este procedimiento.
Antes de CM_EXIT lo que hay son eventos del DataLink asociado al DBEdit (que es interno) y del DataSource. Quizá pudieras usar este último pero no estoy seguro de que se adaptara a tus necesidades.
Lo que yo posiblemente haría es crear un descendiente de TDBEdit que, o bien redefina el método Validate (no recuerdo si es virtual o no) o bien que reimplemente el manejador del mensaje CM_EXIT.
// Saludos