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.

Saludos..... y consultas

Foro público de Xailer en español
Responder
vily
Mensajes: 7
Registrado: Sab Jul 16, 2005 11:17 am

Saludos..... y consultas

Mensaje por vily »

Hola a todos.
He probado la beta 3 y ahora acabo de instalar la beta 4 y realmente, Xailer
tiene muy buena pinta, he trabajado durante años con Clipper 5.2 y he hecho
algo en Alaska, pero creo Xailer llegará muy lejos.
Comentaros algunas dudas que me he encontrado haciendo pruebas:
1- Como puedo controlar las teclas de función, por ejemplo en un edit ,
o que al pulsar F10 en cualquier parte de una aplicación se abra un cajón
portamonedas. He intentado utilizar el evento OnChar en los edits y en el
formulario, pero no se lanza cuando pulsas una tecla e función o una
combinación de teclas con Crt o Alt.
2- Estoy utilizando Tfolder para organizar los datos en un formulario,
pero quiero que estas pestañas sean dinámicas, es decir, que aparezcan y
desaparezcan según convenga, no tengo problema al añadir las nuevas, pero no
encuentro la manera de cerrar una ya creada, puedo eliminar su contenido con
"oFolderPage1:End()" pero la pestaña no se elimina.
3- Como puedo hacer que un botón tenga una tecla rápida, por ejemplo
Alt+A para aceptar o Esc para cancelar.
Disculpar si me enrollado mucho.
Muchas gracias y enhorabuena.
Saludos
J.Vilán.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Saludos..... y consultas

Mensaje por jfgimenez »

José,
> He probado la beta 3 y ahora acabo de instalar la beta 4 y realmente,
> Xailer
> tiene muy buena pinta, he trabajado durante años con Clipper 5.2 y he
> hecho
> algo en Alaska, pero creo Xailer llegará muy lejos.
Gracias.
> 1- Como puedo controlar las teclas de función, por ejemplo en un edit
> ,
> o que al pulsar F10 en cualquier parte de una aplicación se abra un cajón
> portamonedas. He intentado utilizar el evento OnChar en los edits y en el
> formulario, pero no se lanza cuando pulsas una tecla e función o una
> combinación de teclas con Crt o Alt.
OnChar sólo se dispara cuando la tecla que se ha pulsado tiene un código
ASCII, pero las teclas de función, de movimiento y de cambio no lo disparan.
El que sí se dispara siempre es OnKeyDown, exceptuando cuando se pulsa algún
acelerador o alguna combinación "Alt + loquesea". Por supuesto, si la tecla
pulsada es alguna tecla que gestiona el control, el evento no se dispara
(p.ej., si pulsas la barra espaciadora sobre un botón, se dispara el
OnClick, pero no el OnKeyDown ni el OnChar).
Mi consejo es que escribas el evento OnKeyDown del formulario, ya que todas
las teclas que no procesan los controles van a parar al formulario. Ahí
puedes también controlar qué control es quien tiene el foco. P.ej.:
METHOD FormKeyDown( oSender, nKey, nFlags ) CLASS TForm1
IF lAnd( GetKeyState( VK_CONTROL ), 0x80 ) // Teclas con Ctrl
IF nKey == Asc( "N" ) // Ctrl+N Nuevo
...
RETURN 0
ENDIF
ELSE
IF nKey == VK_F9 .AND. ::oActiveControl == ::oEdit1
// Si se ha pulsado F9 estando en oEdit1
RETURN 0
ENDIF
ENDIF
RETURN Nil
Nota: cuando se procesa una tecla es conveniente retornar 0 para evitar que
Xailer o el API continuen intentando procesarla.
Por otro lado también tenemos la función SetKey(), que permite asignar
teclas que van a funcionar en toda la aplicación, como se hacía con Clipper.
La única diferencia es que nosotros tenemos un parámetro más en segundo
lugar. La sintaxis es:
SetKey( <nKey>, <nShift>, [<bCode>] ) -> <bOldCode>
Y un ejemplo:
SetKey( Asc( "C" ), FCONTROL + FALT, {|| Calculator() } )
Esto mostraría la calculadora de Xailer pulsando Ctr+Alt+C desde cualquier
punto de la aplicación.
> 2- Estoy utilizando Tfolder para organizar los datos en un formulario,
> pero quiero que estas pestañas sean dinámicas, es decir, que aparezcan y
> desaparezcan según convenga, no tengo problema al añadir las nuevas, pero
> no
> encuentro la manera de cerrar una ya creada, puedo eliminar su contenido
> con
> "oFolderPage1:End()" pero la pestaña no se elimina.
Utiliza ::oFolderPage1:Delete()
> 3- Como puedo hacer que un botón tenga una tecla rápida, por ejemplo
> Alt+A para aceptar o Esc para cancelar.
Los atajos de teclado (shortcuts) son combinaciones Alt + ?, y se ponen
simplemente anteponiendo un & al caracter que quieras del cText del control.
P.ej. "&Aceptar".
Por otro lado, si al botón le pones la propiedad lCancel := .T., entonces
cuando pulses Esc en ese formulario se disparará ese botón. De la misma
forma, si pones lDefault := .T., es la tecla Enter la que dispara ese botón.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
vily
Mensajes: 7
Registrado: Sab Jul 16, 2005 11:17 am

Saludos..... y consultas

Mensaje por vily »

Muchas gracias, lo probaré
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=42d8f719@ozsrvnegro.ozlan.local...]42d8f719@ozsrvnegro.ozlan.local...[/email]
>
> José,
>
> > He probado la beta 3 y ahora acabo de instalar la beta 4 y realmente,
> > Xailer
> > tiene muy buena pinta, he trabajado durante años con Clipper 5.2 y he
> > hecho
> > algo en Alaska, pero creo Xailer llegará muy lejos.
>
> Gracias.
>
>
> > 1- Como puedo controlar las teclas de función, por ejemplo en un
edit
> > ,
> > o que al pulsar F10 en cualquier parte de una aplicación se abra un
cajón
> > portamonedas. He intentado utilizar el evento OnChar en los edits y en
el
> > formulario, pero no se lanza cuando pulsas una tecla e función o una
> > combinación de teclas con Crt o Alt.
>
> OnChar sólo se dispara cuando la tecla que se ha pulsado tiene un código
> ASCII, pero las teclas de función, de movimiento y de cambio no lo
disparan.
> El que sí se dispara siempre es OnKeyDown, exceptuando cuando se pulsa
algún
> acelerador o alguna combinación "Alt + loquesea". Por supuesto, si la
tecla
> pulsada es alguna tecla que gestiona el control, el evento no se dispara
> (p.ej., si pulsas la barra espaciadora sobre un botón, se dispara el
> OnClick, pero no el OnKeyDown ni el OnChar).
>
> Mi consejo es que escribas el evento OnKeyDown del formulario, ya que
todas
> las teclas que no procesan los controles van a parar al formulario. Ahí
> puedes también controlar qué control es quien tiene el foco. P.ej.:
>
> METHOD FormKeyDown( oSender, nKey, nFlags ) CLASS TForm1
>
> IF lAnd( GetKeyState( VK_CONTROL ), 0x80 ) // Teclas con Ctrl
> IF nKey == Asc( "N" ) // Ctrl+N Nuevo
> ...
> RETURN 0
> ENDIF
> ELSE
> IF nKey == VK_F9 .AND. ::oActiveControl == ::oEdit1
> // Si se ha pulsado F9 estando en oEdit1
> RETURN 0
> ENDIF
> ENDIF
>
> RETURN Nil
>
> Nota: cuando se procesa una tecla es conveniente retornar 0 para evitar
que
> Xailer o el API continuen intentando procesarla.
>
>
> Por otro lado también tenemos la función SetKey(), que permite asignar
> teclas que van a funcionar en toda la aplicación, como se hacía con
Clipper.
> La única diferencia es que nosotros tenemos un parámetro más en segundo
> lugar. La sintaxis es:
>
> SetKey( <nKey>, <nShift>, [<bCode>] ) -> <bOldCode>
>
> Y un ejemplo:
>
> SetKey( Asc( "C" ), FCONTROL + FALT, {|| Calculator() } )
>
> Esto mostraría la calculadora de Xailer pulsando Ctr+Alt+C desde cualquier
> punto de la aplicación.
>
>
> > 2- Estoy utilizando Tfolder para organizar los datos en un
formulario,
> > pero quiero que estas pestañas sean dinámicas, es decir, que aparezcan y
> > desaparezcan según convenga, no tengo problema al añadir las nuevas,
pero
> > no
> > encuentro la manera de cerrar una ya creada, puedo eliminar su contenido
> > con
> > "oFolderPage1:End()" pero la pestaña no se elimina.
>
> Utiliza ::oFolderPage1:Delete()
>
>
> > 3- Como puedo hacer que un botón tenga una tecla rápida, por ejemplo
> > Alt+A para aceptar o Esc para cancelar.
>
> Los atajos de teclado (shortcuts) son combinaciones Alt + ?, y se ponen
> simplemente anteponiendo un & al caracter que quieras del cText del
control.
> P.ej. "&Aceptar".
>
> Por otro lado, si al botón le pones la propiedad lCancel := .T., entonces
> cuando pulses Esc en ese formulario se disparará ese botón. De la misma
> forma, si pones lDefault := .T., es la tecla Enter la que dispara ese
botón.
>
> --
> Un saludo,
>
> José F. Giménez
>
>
>
Responder