Página 1 de 1

Uso de teclas en Formulario

Publicado: Mié Ago 19, 2009 12:45 pm
por Karl Svensson
He modificado el formulario para que me capture teclas y las vincule al
control Navigator, pero en controles como TBDatePicker no funciona. ¿He de
sobrecargar el control, o se trata de un bug?
Karl
METHOD FormKeyDown( oSender, nKey, nFlags ) CLASS TIntrastat
LOCAL
aTeclas:={VK_HOME,VK_PRIOR,VK_NEXT,VK_END,VK_INSERT,VK_DELET E,VK_RETURN,;
VK_RETURN,VK_BACK},nTecla
if nKey=VK_ESCAPE
::Close()
elseif lGetKeyState( VK_CONTROL ) .or. lGetKeyState( VK_SHIFT )
nTecla:=aScan(aTeclas,nKey)
if ::oDBNavigator1:aItems[8]:lEnabled //¿Está editando un registro
if nKey=VK_RETURN
nTecla++ //Opción grabar, misma tecla que editar
elseif nKey<>VK_BACK
nTecla:=0 //Bloquea todas las otras teclas
end
end
if nTecla>0
::oDBNavigator1:Command( BN_CLICKED, TB_ID_FIRST+nTecla )
end
endif
RETURN Nil

Uso de teclas en Formulario

Publicado: Mié Ago 19, 2009 7:53 pm
por ignacio
Karl,
Muchos controles del API utilizan determinadas pulsaciones para su propio
uso y no notifican de su uso. Es posible que sea el caso. Intente mandarnos
un ejemplo indicando exactamente que pulsación de teclado no le llega.
Un saludo,
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
http:/xailer.info
"Karl Svensson" <karl@bcnartis.com> escribió en el mensaje de
noticias:4a8bd823$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> He modificado el formulario para que me capture teclas y las vincule al
> control Navigator, pero en controles como TBDatePicker no funciona. ¿He de
> sobrecargar el control, o se trata de un bug?
> Karl
>
> METHOD FormKeyDown( oSender, nKey, nFlags ) CLASS TIntrastat
> LOCAL
> aTeclas:={VK_HOME,VK_PRIOR,VK_NEXT,VK_END,VK_INSERT,VK_DELET E,VK_RETURN,;
> VK_RETURN,VK_BACK},nTecla
> if nKey=VK_ESCAPE
> ::Close()
> elseif lGetKeyState( VK_CONTROL ) .or. lGetKeyState( VK_SHIFT )
> nTecla:=aScan(aTeclas,nKey)
> if ::oDBNavigator1:aItems[8]:lEnabled //¿Está editando un registro
> if nKey=VK_RETURN
> nTecla++ //Opción grabar, misma tecla que editar
> elseif nKey<>VK_BACK
> nTecla:=0 //Bloquea todas las otras teclas
> end
> end
> if nTecla>0
> ::oDBNavigator1:Command( BN_CLICKED, TB_ID_FIRST+nTecla )
> end
> endif
> RETURN Nil
>
>