Uso de teclas en Formulario
Publicado: Mié Ago 19, 2009 12:45 pm
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
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