Pregunta: | 1268 - KEYPRESS DE TEXTBOX. NKEYCODE SIEMPRE DEVUELVE 0 |
Autor: | Javier Amoros Canto |
Hola a todos y gracias de antemano. Tengo una aplicacion en Visual FoxPro V 5.0a, y en un formulario, tengo un Textbox para introducir el codigo del cliente. Si el usuario no sabe el codigo de cliente, pulsando F2, llama a un formulario de consulta. Para controlar esto, en el evento KeyPress del control, tengo IF nKeyCode = 1 .OR. nKeyCode = -1 DO FORM Consulta ....... ENDIF el caso es que en ocasiones, al pulsar F2, no funciona. Cansado de probar, puse la instruccion WAIT WINDOW ´Valor de nKeyCode : ´+ALLTRIM(STR(nKeyCode)) y cual fue mi sorpresa al comprobar que cuando falla, el wait window siempre muestra 0 (cero) como valor de nKeyCode ¿ Que estoy haciendo mal ? Desde ya gracias. |
Respuesta: | OMAR MARTELO |
JAVIER AQUI TE MANDO UN EJEMPLO DE COMO LO HICE YO EN UNO DE MIS PROGRAMAS....
AQUI UTILIZE VARIABLES DE AYUDA...PARA SABER CUANDO SE USARA... if nkeycode=13 if !empty(this.value) nitemp1=alltrim(thisform.text3.value) smysql="select nomclient from clientes where nitemp=?nitemp1" sqlsetprop(gnconn,'batchmode',.f.) sqlmoreres(gnconn) if sqlexec(gnconn,smysql,'buscacemp2')=-1 messagebox('¡error!',16,'¡error!') else select buscacemp2 go top if !eof() thisform.text4.value=buscacemp2.nomemp else messagebox('Este cliente no se encuentra registrado',64,'ok') thisform.combo1.setfocus thisform.command2.enabled=.t. thisform.command1.enabled=.t. thisform.command3.enabled=.t. thisform.command5.enabled=.t. thisform.command4.enabled=.t. endif endif endif endif if nkeycode=-1 this.value="" set defa to c:\sys-aprendiz varayuda=2 do form ayuda.scx endif ESPERO QUE TE SEA DE AYUDA.... |
Respuesta: | NAvS |
MIRA YO TE ACONSEJO KE PONGAS LO SIGUIENTE
IF LASTKEY() = -1 DO FORM 1 ENDIF Y SI QUIERES AGREGAR OTRA TECLA VUELVES A TECLEAR IF LASTKEY() = 1 DO FORM 2 ENDIF |
Respuesta: | Manuel Jesus Duran Chusan |
Amigo es raro pero te digo que borres el text y crees de nuevo ese objeto
no uses "on key label2 es mas complicado si no te pudes asi en el formulario en keypress activala como .t. y valida desde el formulario, o puedes validar en el evento lostfocus que cuando en dato que ingrese no exista aparesca el otro formulario con la lista de datos. cual quier pregunta mi mail |
Respuesta: | Luis Miguel Caballero |
Sugiero que cambies el código para que sea ON KEY LABEL F2 DO CONSULTA y no te olvides de limpiar esto con ON KEY LABEL F2 al salir del procedimiento o el formulario |
Respuesta: | Jose Maria Sosa |
Prueba usando Lastkey() ej: if lastkey() = -1 do form consulta endif a mi me funciona bien así. cualquier cosa mandame un mail. chau, buena suerte. |