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.

Mavegacion tipo Clipper (dos) en Xailer(windows)

Foro público de Xailer en español
Responder
Diego Ferreira
Mensajes: 148
Registrado: Mar Dic 18, 2007 4:39 pm

Mavegacion tipo Clipper (dos) en Xailer(windows)

Mensaje por Diego Ferreira »

Hola a todos mi nombre es diego un joven de apenas 20 años (NOVATO) y este
es mi primer mensaje desde Caracas, Venezuela...
Mi pregunta es la siguiente ando probrando la demo de xailer y mi intencion
es hacer una prueba de mantenimiento de una tabla con un formulario haciendo
que los usuarios finales usen lo menos posiblre el RATON... eh conseguido en
la ayuda de Xailer el TApplication:lUseReturn que se usa para asegnar a la
tecla ENTER la funcion del TAB... pero faltaria aplicar la navegacion
inversa para volver a los campos de arriba o anteriores segun el TAB
POSICION para esto en windows se usa el MAYUS+TAB....
en conclusion lo que quiero es asignarle a otra TECLA la funcion de
MAYUS+TAB !
eh intentado hacerlo como en el ejemplo VISOR agregando otros componentes
del Xailer poniendo:
IF nKey == chr(271) // 271 es el codigo para MAYUS + TAB
::Button2Click()
ENDIF
pero no me toma en cuenta ninguna combinacion que sea TAB o TAB + XXX con
cualkier otra tecla si !!!
Gracias de Antemano....
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Mavegacion tipo Clipper (dos) en Xailer(windows)

Mensaje por jfgimenez »

Diego,
> Hola a todos mi nombre es diego un joven de apenas 20 años (NOVATO) y
> este es mi primer mensaje desde Caracas, Venezuela...
¡Bienvenido!
> Mi pregunta es la siguiente ando probrando la demo de xailer y mi
> intencion es hacer una prueba de mantenimiento de una tabla con un
> formulario haciendo que los usuarios finales usen lo menos posiblre el
> RATON... eh conseguido en la ayuda de Xailer el TApplication:lUseReturn
> que se usa para asegnar a la tecla ENTER la funcion del TAB... pero
> faltaria aplicar la navegacion inversa para volver a los campos de arriba
> o anteriores segun el TAB POSICION para esto en windows se usa el
> MAYUS+TAB....
>
> en conclusion lo que quiero es asignarle a otra TECLA la funcion de
> MAYUS+TAB !
>
> eh intentado hacerlo como en el ejemplo VISOR agregando otros componentes
> del Xailer poniendo:
>
> IF nKey == chr(271) // 271 es el codigo para MAYUS + TAB
> ::Button2Click()
> ENDIF
>
> pero no me toma en cuenta ninguna combinacion que sea TAB o TAB + XXX con
> cualkier otra tecla si !!!
El código chr(271) sólo es válido para DOS, pero no para windows, lo mismo
que el resto de códigos de inkey.ch. En windows, todas las teclas tienen un
único código, independientemente de que se pulsen en combinación con otras.
Lo que hay que hacer es comprobar qué teclas de cambio están pulsadas. P.ej:
IF nKey == VK_TAB
IF lGetKeyState( VK_CONTROL )
// Se ha pulsado Ctrl + tab
ELSEIF lGetKeyState( VK_SHIFT )
// Se ha pulsado Mayús + tab
ELSE
// Se ha pulsado tab sólo
ENDIF
ENDIF
Por otro lado, las combinaciones de teclas <Alt>+<tecla> no se reciben
(salvo alguna excepción) por el evento OnKeyDown, sino por OnSysKeyDown.
--
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
ddupre
Mensajes: 334
Registrado: Lun Nov 12, 2007 3:53 pm

Mavegacion tipo Clipper (dos) en Xailer(windows)

Mensaje por ddupre »

Bienvenido Diego:
Yo resolví­ ese mismo problema con un aporte que hizo el maestro Jose F.
hace algún tiempo y funciona perfectamente.
Este trozo de código tengo entendido que lo puedes poner en cualquier
..prg pero yo lo he puesto en uno que se llama xclass.prg (siguiendo los
consejos de otro colega).
Te recomiendo que si puedes te descargues todos los mensajes del foro y
busques xclass.prg dentro del cuerpo de los mismos y vas a encontrar de
donde lo saque (te aclaro que utilizo mozilla Thunderbird como cliente
de news, no se como se busca en otros clientes).
Saludos
Daniel.
// Esta derivación permite navegar por los controles usando las teclas de
// Flechas como en Clipper
CLASS TEdit FROM xEdit
PUBLISHED:
METHOD WMKeyDown( nKey, nFlags )
ENDCLASS
METHOD WMKeyDown( nKey, nFlags ) CLASS TEdit
IF nKey == VK_UP
::GoPrevControl()
ELSEIF nKey == VK_DOWN
::GoNextControl()
ELSE
RETURN Super:WMKeyDown( nKey, nFlags )
ENDIF
RETURN 0

Diego Ferreira escribió:
> Hola a todos mi nombre es diego un joven de apenas 20 años (NOVATO) y este
> es mi primer mensaje desde Caracas, Venezuela...
>
> Mi pregunta es la siguiente ando probrando la demo de xailer y mi intencion
> es hacer una prueba de mantenimiento de una tabla con un formulario haciendo
> que los usuarios finales usen lo menos posiblre el RATON... eh conseguido en
> la ayuda de Xailer el TApplication:lUseReturn que se usa para asegnar a la
> tecla ENTER la funcion del TAB... pero faltaria aplicar la navegacion
> inversa para volver a los campos de arriba o anteriores segun el TAB
> POSICION para esto en windows se usa el MAYUS+TAB....
>
> en conclusion lo que quiero es asignarle a otra TECLA la funcion de
> MAYUS+TAB !
>
> eh intentado hacerlo como en el ejemplo VISOR agregando otros componentes
> del Xailer poniendo:
>
> IF nKey == chr(271) // 271 es el codigo para MAYUS + TAB
> ::Button2Click()
> ENDIF
>
> pero no me toma en cuenta ninguna combinacion que sea TAB o TAB + XXX con
> cualkier otra tecla si !!!
>
>
> Gracias de Antemano....
>
>
>
Diego Ferreira
Mensajes: 148
Registrado: Mar Dic 18, 2007 4:39 pm

Mavegacion tipo Clipper (dos) en Xailer(windows)

Mensaje por Diego Ferreira »

Gracias !!! Logre justamente lo que queria....
1. Me gustaria saber si hay una lista con los codigo para las teclas en
windows (vk_return,vk_tab, etc) porque buske y no pude encontrarlo.
2. Ahora quisiera saber cual seria el control para saber que Control
(ListBox, CheckBox, Edit, etc) tiene el foco... mi intecion con esto es
hacerle cambiar el color de fonfo y color (ClText, ClPane) de texto si tiene
el foco y haci hacer una clase para que segun el tipo de control aplique la
proviedad sea cual sea...!
Gracias de antemano !
Responder