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.

Vaciar keyboard buffer

Foro público de Xailer en español
Responder
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Vaciar keyboard buffer

Mensaje por zeasoftware »

Tengo un proceso con el tArrayBrowse donde estoy validando teclas con el
OnKeyDown, la cosa es que Valido que si el usuario pulsa Enter, me voy a
modo de edicion, pero, la primera columna se va de largo como si le hubiera
dado Enter nuevamente.
Como hago que despues de validar el enter limpie el buffer?
En clipper usaba __keyboard().
Gracias de antemano.
Saludos.
Ramón Zea
PD.: esta muy quieta la sala, y eso por que?
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Vaciar keyboard buffer

Mensaje por jfgimenez »

Ramón,
> Tengo un proceso con el tArrayBrowse donde estoy validando teclas con el
> OnKeyDown, la cosa es que Valido que si el usuario pulsa Enter, me voy a
> modo de edicion, pero, la primera columna se va de largo como si le
> hubiera dado Enter nuevamente.
Muestrame el código que estás usando.
> PD.: esta muy quieta la sala, y eso por que?
La verdad es que, desde hace bastante tiempo, los foros privados tienen más
actividad que éste.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Vaciar keyboard buffer

Mensaje por zeasoftware »

Aqui te lo anexo el codigo donde estoy validando las teclas, ando bien?
Saludos.
METHOD ArrayBrowse1KeyDown( oSender, nKey, nFlags ) CLASS TFrmFacturas
Do Case
Case ( nKey == VK_DELETE )
With Object ::oArrayBrowse1
If ( :nLen > 0 )
:DelRow()
End
End with
Case ( nKey == VK_RETURN )
With Object ::oArrayBrowse1
If ( :nLen == 0 .Or. :nArrayAt == :nLen )
:AddRow( { 0, "", "", 0, 0 }) //, :nArrayAt )
:GoBottom()
End
:Edit() //aqui se pasa en banda la primera captura.,,
End with
EndCase
RETURN Nil
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Vaciar keyboard buffer

Mensaje por zeasoftware »

> La verdad es que, desde hace bastante tiempo, los foros privados tienen
> más actividad que éste.
Cuales foros?
en su ciudad?
Saludos.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Vaciar keyboard buffer

Mensaje por jfgimenez »

Ramón,
cuando proceses una tecla y no quieras que Xailer o windows hagan algo con
ella, tienes que retornar 0. Así:
> METHOD ArrayBrowse1KeyDown( oSender, nKey, nFlags ) CLASS TFrmFacturas
> Do Case
> Case ( nKey == VK_DELETE )
> With Object ::oArrayBrowse1
> If ( :nLen > 0 )
> :DelRow()
>
> End
>
> End with
RETURN 0
> Case ( nKey == VK_RETURN )
>
> With Object ::oArrayBrowse1
> If ( :nLen == 0 .Or. :nArrayAt == :nLen )
> :AddRow( { 0, "", "", 0, 0 }) //, :nArrayAt )
> :GoBottom()
>
> End
>
> :Edit() //aqui se pasa en banda la primera captura.,,
>
> End with
RETURN 0
> EndCase
>
> RETURN Nil
En caso contrario, Xailer le pasa de nuevo la tecla al control contenedor
del control que tenía el foco de teclado; puede ser el propio formulario o
un panel, bevel, etc.. Así, la tecla va pasando de control a control hasta
llegar al formulario; si éste último no la procesa, pues se la reenvía a
windows.
En cualquier punto de la cadena puedes retornar 0, y entonces se da por
procesada y no se propaga más.
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder