La Web del Programador: Comunidad de Programadores
 
    Pregunta:  3748 - _CUROBJ EN VFP 5 O 6
Autor:  FRANKLIN ALBEIRO GOMEZ MENDOZA
Necesito saber como puedo desde un evento del control evitar que el control pierda el enfoque al validar una entrada de datos, puesto que lo he intentado desde el evento valid, lostfocus asignandole la propiedad setfocus al control a validar y no me funciona, desde Foxpro 2.6 era mas facil porque si no queria que avanzara al siguiente control le daba la orden _Curobj = _Curobj pero en visual 5.0 no he podido lograrlo, Gracias por la colaboracion que me puedan prestar.

  Respuesta:  mago
Una solución que me funciona es poniendo la validacion no en el evento VALID, sino en el LOSTFOCUS, cuando hay un error entonces pones NODEFAULT. Ej.:

** TEXTBOX1.LOSTFOCUS()
IF this.value <= 0.00
=messagebox("el monto no puede ser cero.")
nodefault
this.setfocus()
ENDIF

espero que te sirva.-

  Respuesta:  René Abdala Rojas
Estimado amigo, en Visual Foxpro, para evitar que un objeto pierda el enfoque cuando lo que validas no es correcto, lo unico que tienes que agregar a un VALID es RETURN .F.

Espero mi contribución te ayude en algo, un cordial saludo desde Bogotá (Colombia)

  Respuesta:  jeg
retornando el valor 0 en el evento valid no se pierde el enfoque
Por ejemplo

procedure text1.valid
* código de validación
return 0 &&con esto el foco sigue en el mismo control
endproc

  Respuesta:  Wilson Alfredo Guerra Vélez
Haz la validación en el evento Gotfocus que le pertenece al campo inmediatamente siguiente al que quieras validar.

Se debe tener en cuenta que este campo debe estar habilitado y ser de escritura. En caso contrario haslo en el campo siguiente que cumplka con estas condiciones.

Cuentame como te fué con mi sugerencia.