Evitar o forzar dar enter en un texbox

682 views
Skip to first unread message

Antonio Meza

unread,
Jun 30, 2011, 1:32:56 PM6/30/11
to publice...@googlegroups.com
Hola!!!
 
A ver si me pueden ayudar!!!
 
Cuando el usuario esta editando un TextBox o un Edibox, ComboBox, para escribir un dato por ejemplo un textbox para poner su nombre, el usuario lo escribe pero no presiona nunca ENTER, TAB,o alguna otra tecla para confirmar lo que escribio y le da CTRL + G para guardar que tengo programado en el Keypress del formulario, el cambio que hizo no se guarda.
 
Es posible hacer que al presionar CTRL + G o alguna otra funcion que tenga oblige a teclear Enter para confirmar solo si se esta escribiendo en un control y ese no ha sido confirmado? es decir su evento VALID no termina de ejecutarse!!!
 
saludos
Antonio Meza

Jorge Montúfar

unread,
Jun 30, 2011, 1:49:46 PM6/30/11
to publice...@googlegroups.com
según me acuerdo con un
Set confirm on

Espero que te funcione

Antonio Meza

unread,
Jun 30, 2011, 1:59:26 PM6/30/11
to publice...@googlegroups.com
gracias!!!
 
probe el SET CONFIRM ON pero no me resulto, el detalle es que escirbes algo y si no presionas enter u otra tecla el valid no termina, guarda el registro, y regresa hacer lo del valid, si hago un requery() a la tabla me dice que hay cambios que no se han confirmado al cursor.
 
Si le doy enter o tab o las flechas se sale del textbox y presiono CTRL + G guarda y el requery() ya no me marca error!!!
 
saludos!!!

Jorge Montúfar

unread,
Jun 30, 2011, 2:11:44 PM6/30/11
to publice...@googlegroups.com
bueno voy a recordarme, pensar o derrepente alguno de los foxeros que saben bastante nos ayudan

Antonio Meza

unread,
Jun 30, 2011, 2:25:35 PM6/30/11
to publice...@googlegroups.com
parece que ya lo resolvi, no se si sera lo adecuado, le voy a poner a mi usuario preferido jajaja es que este cuate es un buen betatester jajaj porq siempre le encuentra algo escondido al sistema de hecho el fue quien me dijo que le pasaba esto!!!
 
tengo botones Nuevo, editar, guardar, deshacer, etc.
 
Entonces le agrege acada boton en el evento CLICK antes del codigo un this.setfocus
 
this.setfocus
....guardar....
 
de esta forma cuando el usuario presiona CTRL + G que es guardar se dispara el evento Keypress del formulario
 
if nKeyCode = 7 and nShiftAltCtrl = 2 
     NODEFAULT
     thisform.guardar.click
endif
 
Si esta editando un texbox y no ha presionado ENTER, el this.setfocus realiza esta accion,  ejecutando el Valid del Texbox porq esta perdiendo el focus y pasando el focus al boton guardar y ya no me marco error el requery()
 
saludos!!!

Jorge Montúfar

unread,
Jun 30, 2011, 2:29:07 PM6/30/11
to publice...@googlegroups.com
buenisimo, me alegro mucho cuidate

Mario Alfredo

unread,
Jul 7, 2011, 5:01:51 PM7/7/11
to Comunidad de Visual Foxpro en Español
if nKeyCode = 7 and nShiftAltCtrl = 2
NODEFAULT
thisform.guardar.click
endif

que teclas son el 7 y el 2

Antonio Meza

unread,
Jul 8, 2011, 10:00:20 AM7/8/11
to publice...@googlegroups.com
Hola!!
 
Es para usar:
 
Ctrl + G
 
No te confundas que 7 sea Ctrl o "0" sea G, lo que pasa es que si utilizas solo asi:
 
if nKeyCode = 7 && Ctrl + G
NODEFAULT
thisform.guardar.click
endif
Dara el mismo resultado, pero hay que tener cuidado porq hay otras teclas que tambien se disparan con nKeyCode = 7, para evitar eso se usa el  nShiftAltCtrl, de esta forma sera unica la combinacion.
 
hay un articulo en portalfox que explica esto, hace unos dias Luis Maria puso el link pero no lo encontre para mostrartelo!!
 
Crea un formulario nuevo y en el evento KeyPress del furmulario pon este codigo ejecutas el formulario y luego presiona la tacla que deseas o la combinacion y ahi veras los valores devueltos. por cierto de preferencia que la propiedad SHOWWINDOWS = 2 del formulario para que no te afecte con las teclas programas del mismo Vfp.
 
WAIT windows "nKeyCode: " + STR(nKeyCode) + " nShiftAltCtrl: " + STR(nShiftAltCtrl)
 
saludos!!
 
Reply all
Reply to author
Forward
0 new messages