FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Detectar flecha arriba, flecha abajo en un button
Posts: 234
Joined: Tue Oct 25, 2005 12:39 AM
Detectar flecha arriba, flecha abajo en un button
Posted: Sat Oct 28, 2006 12:59 AM

Hola gente,
驴Como detecto cuando el usuario ha oprimido las teclas de flecha arriba 贸 flecha abajo en un bot贸n?

Gracias

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Re: Detectar flecha arriba, flecha abajo en un button
Posted: Sat Oct 28, 2006 01:52 AM
fleal wrote:Hola gente,
驴Como detecto cuando el usuario ha oprimido las teclas de flecha arriba 贸 flecha abajo en un bot贸n?

Gracias


oBtn:bKeyDown := {|nKey| pulsa(nKey)}

function pulsa(nkey)
? nKey
return .t.

Es al vuelo, espero te ayude
William, Morales

Saludos



m茅xico.sureste
Posts: 234
Joined: Tue Oct 25, 2005 12:39 AM
Detectar flecha arriba, flecha abajo en un button
Posted: Sat Oct 28, 2006 01:44 PM

Ya hab铆a probado a usar oBtn:bKeyDown y oBtn:bKeyChar. Las teclas no son detectadas.
Probe a usar oBtn:bLostFocus := {|nKey| msginfo(nKey)} pero regresa nil en flecha arriba, flecha abajo.

驴Alguna idea mas?

Gracias

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Detectar flecha arriba, flecha abajo en un button
Posted: Sat Oct 28, 2006 02:14 PM
fleal wrote:Ya hab铆a probado a usar oBtn:bKeyDown y oBtn:bKeyChar. Las teclas no son detectadas.
Probe a usar oBtn:bLostFocus := {|nKey| msginfo(nKey)} pero regresa nil en flecha arriba, flecha abajo.

驴Alguna idea mas?

Gracias


oBtn:bChange := {|| pulsa() }

FUNCTION pulsa()
IF GetKeyState(VK_UP)
? "Flecha arriba"
ELSEIF GetKeyState(VK_DOWN)
? "Flecha abajo"
ENDIF
RETURN .t.
William, Morales

Saludos



m茅xico.sureste
Posts: 234
Joined: Tue Oct 25, 2005 12:39 AM
Detectar flecha arriba, flecha abajo en un button
Posted: Sun Oct 29, 2006 03:08 AM

William,
Lo resolv铆 usando el VALID del bot贸n,

REDEFINE BUTTON aBtns[1] ID 501 OF oFld:aDialogs[1] ; // Siguiente
VALID GetKeyState( VK_UP ) OR ;
GetKeyState( VK_RETURN ) ;
ACTION ( Siguiente( aGets, aCampos ) )

Sucede que al llegar al bot贸n de Siguiente y oprimir flecha abajo el focus se pasa el primer get del dialogo. Pero no puedes regresar con flecha arriba para que el focus se ponga en el bot贸n nuevamente. Asi que al llegar al bot贸n de Siguiente, la 煤nica opci贸n que estoy dejando es Flecha arriba y Enter.
Si es flecha arriba pues el focus se pone en el 煤ltimo get del dialogo antes de entrar al bot贸n.
Si es Enter se activar谩 la funci贸n Siguiente( )

Gracias

Posts: 1076
Joined: Fri Oct 07, 2005 10:41 PM
Detectar flecha arriba, flecha abajo en un button
Posted: Sun Oct 29, 2006 03:14 AM
fleal wrote:William,
Lo resolv铆 usando el VALID del bot贸n,

REDEFINE BUTTON aBtns[1] ID 501 OF oFld:aDialogs[1] ; // Siguiente
VALID GetKeyState( VK_UP ) OR ;
GetKeyState( VK_RETURN ) ;
ACTION ( Siguiente( aGets, aCampos ) )

Sucede que al llegar al bot贸n de Siguiente y oprimir flecha abajo el focus se pasa el primer get del dialogo. Pero no puedes regresar con flecha arriba para que el focus se ponga en el bot贸n nuevamente. Asi que al llegar al bot贸n de Siguiente, la 煤nica opci贸n que estoy dejando es Flecha arriba y Enter.
Si es flecha arriba pues el focus se pone en el 煤ltimo get del dialogo antes de entrar al bot贸n.
Si es Enter se activar谩 la funci贸n Siguiente( )

Gracias


Excelente amigo.

Saludos
William, Morales

Saludos



m茅xico.sureste

Continue the discussion