In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

KEYBOARD CHR(13)

Foro público de Xailer en español
Responder
Sergio Ibarra
Mensajes: 10
Registrado: Mié Sep 10, 2008 12:51 am

KEYBOARD CHR(13)

Mensaje por Sergio Ibarra »

Hola todos:
Por favor, si alguien me puede ayudar.
Hago un picklist que funciona correctamente desde un TDBMaskEdit, pero
no consigo eliminar el modo de edicion en forma automática para que se
pase al siguiente TDBMaskEdit sin tener que dar enter. En Clipper esto
se resolvia con un KEYBOARD CHR(13) el cual resolvia el estado modal,
pero en Xailer no he logrado hacerlo ni con este comando el cual está
disponible en xHarbour, ni con RETURN 0, ni tampoco encuentro algún
metodo o propiedad en la clase que pueda usar para este fin.
Agradeceré la ayuda que me proporcionen.
Saludos.
seribalun@live.com.mx
Guillermo Guevara Car
Mensajes: 176
Registrado: Sab Ene 19, 2008 5:52 pm

KEYBOARD CHR(13)

Mensaje por Guillermo Guevara Car »

Comparo la misma duda
Rodolfo
"Sergio Ibarra Luna" <seribalun@live.com.mx> escribió en el mensaje
news:[email=496776d9@svctag-j7w3v3j....]496776d9@svctag-j7w3v3j....[/email]
> Hola todos:
>
> Por favor, si alguien me puede ayudar.
>
> Hago un picklist que funciona correctamente desde un TDBMaskEdit, pero no
> consigo eliminar el modo de edicion en forma automática para que se pase
> al siguiente TDBMaskEdit sin tener que dar enter. En Clipper esto se
> resolvia con un KEYBOARD CHR(13) el cual resolvia el estado modal, pero en
> Xailer no he logrado hacerlo ni con este comando el cual está disponible
> en xHarbour, ni con RETURN 0, ni tampoco encuentro algún metodo o
> propiedad en la clase que pueda usar para este fin.
>
> Agradeceré la ayuda que me proporcionen.
>
> Saludos.
> seribalun@live.com.mx
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

KEYBOARD CHR(13)

Mensaje por zeasoftware »

USO EN TDBBROWSE:
:PostMsg( WM_KEYDOWN, VK_DOWN )
SI PONES UNA IMAGEN DE POR QUE NO SE ENTIENDE BIEN QUE INTENTAS.
SALUDOS.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
Sergio Ibarra
Mensajes: 10
Registrado: Mié Sep 10, 2008 12:51 am

KEYBOARD CHR(13)

Mensaje por Sergio Ibarra »

Ramón Zea escribió:
> USO EN TDBBROWSE:
> :PostMsg( WM_KEYDOWN, VK_DOWN )
>
> SI PONES UNA IMAGEN DE POR QUE NO SE ENTIENDE BIEN QUE INTENTAS.
>
> SALUDOS.
Ramón, gracias por responder.
Tengo un formulario de captura asociado a un dataset por medio de
controles TDBMaskEdit. Para hacer más amigable la captura de un dato
registrado en un catálogo ofrezco, por medio de una hotkey, una lista de
opciones con los valores de ese catálogo para que el usuario elija
alguno de ellos sin tener que escribirlo con el teclado, despues de lo
cual asigno el correspondiente valor a la propiedad Value de dicho
TDBMasdkEdit y asta aqui todo bien, pues en el formulario el control
refleja correctamente el valor seleccionado por el usuario, sin embargo,
para pasar al siguiente control se tiene obligatoriamente que teclear
[ENTER] o alli se queda a pesar de hacer un Return 0 o bién incluir un
SetFocus( .T. ), al siguiente control en el metodo OnExit del
TDBMaskEdit en cuestión (claro que con un click del mouse en el
siguiente control esto se resuelve, pero hacerlo así­ no es muy agradable
para el usuario pues corta la secuencia de la captura).
Lo que comento es que con Clipper, una vez obtenido el valor de la lista
de opciones simplemente se enviaba el [ENTER] al buffer del teclado con
un comando KEYBOARD CHR(13) y listo, se mataba al GET que provocaba el
estado modal y la captura se hací­a agil y amigable.
Te agradezco la ayuda que me puedas dar.
Sergio Ibarra Luna.
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

KEYBOARD CHR(13)

Mensaje por zeasoftware »

entonces lo que quieres es que al seleccionar el dato que seleccione de la
lista, inmediatamente se vaya al siguiente control?
Si pones algo de codigo para entender mas.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

KEYBOARD CHR(13)

Mensaje por jfgimenez »

Sergio,
puedes llamar al método :GoNextControl() del dbmaskedit, para que pase el
foco al siguiente control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Sergio Ibarra
Mensajes: 10
Registrado: Mié Sep 10, 2008 12:51 am

KEYBOARD CHR(13)

Mensaje por Sergio Ibarra »

Jose F. Gimenez escribió:
> Sergio,
>
> puedes llamar al método :GoNextControl() del dbmaskedit, para que pase el
> foco al siguiente control.
>
>
Ramon Zea y Jose F. Gimenez, muchas gracias por responder.
Estoy descubriendo en la documentación del evento OnExit de TStdControl
(del cual hereda la clase TMaskEdit) el siguiente comentario:
"Nota: En ningún caso puede cambiar el foco desde el código de este
evento, es decir, no debe utilizar el método SetFocus."
Ya probé con GoNextControl(), pero no cambia al siguiente control sin
dar enter.
Tambien probé con oNextCtl := ::oMaskEditN y tampoco.
Quizás se pudiera modificar la restricción del evento OnExit para que si
permita asignar foco a otro control en razón de que es muy frecuente en
una pila de controles de captura, el que dependiendo de un dato
capturado en supongamos, un control "A", se asignen desde catálogos
valores a otros controles de captura (para información y confirmación),
digamos "B", "c" y "D", sin que el usuario tenga que capturarlos, y de
esta forma pasar el foco al control de captura "E" en forma directa
desde el evento OnExit del control "A" en el código del programa. Lo
anterior permitiendo claro, que en el caso de un asunto nuevo de puedan
capturar todos los datos necesarios en "A", "B", "C", "D", "E", etc.
Agradezco la ayuda.
Sergio Ibarra Luna
seribalun@live.com.mx
Responder