Para ese caso yo uso una bandera que inicializo en el init del textbox:
this.addproperty('lValidar',.t.)
En el valid pongo esto:
if lastkey() = 27 or empty(this.value) && toco escape o no toco nada
pero salgo del textbox
this.lValidar = .f.
return 1
endif
if this.lValidar = .t.
** aqui va el código de validación
endif
En el lostfocus del textbox pongo esto:
this.lValidar = .t.
De esta manera, si el usuario toca escape (pones código de cierre de
formulario en el evento keypress)
if this.nKeyCode = 27
release thisform
endif
Si simplemente saca el mouse del textbox y pasa a otra parte del
formulario, como la bandera lValidar se pone en falso, el código de
validación no se dispara. Si por el contrario ingresa un valor en el
textbox, la bandera queda en .t. y el código de validación actúa
Rafael Copquin
On 07/11/2016 11:08, Sergio . wrote:
Hola gente, tengo una consulta, que quizás ya la tienen resuelta,
tengo en el sistema un comportamiento medio fastidioso y quiero ver
como lo resuelvo.
Me pasa que tengo una pantalla de pedidos por ejemplo donde el cursor
se posiciona en en el textbox donde se ingresa el codigo del cliente
(numérico), y en donde en el VALID si el usuario no ingresa ningun
dato o le dá ENTER se abre el buscador de clientes, hasta acá todo
bien, pero suele pasar que hace un pedido, y luego de grabar el cursor
queda en el textbox del codigo del cliente...entonces resulta que abre
otra pantalla cualquier del menú.... sin escribir nada en el código
del cliente pero resulta que se abre la otra pantalla del menú y la
pantalla del buscador de clientes, hay alguna forma de que no se abra
el buscador??
Espero se entienda
Saludos y gracias de antemano.
Sergio