Menu que se pueda seleccionar con teclado num. y con puntero

Post Reply
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Menu que se pueda seleccionar con teclado num. y con puntero

Post by josevalle »

Hola:

Cuando uso oWnd:bKeyDown me dice (al ejecutar):

"Not implemented yet: GetNumberOfConsoleInputEvents"

¿De que otra manera podría hacerlo?




#include "FWCE.ch"
#INCLUDE "hbclass.ch"
#include "Directry.ch"


REQUEST DBFCDX
REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..)


//----------------------------------------------------------------------------//

FUNCTION Main()
***************

LOCAL oWnd

PRIVATE oBoton0,oBoton1,oBoton2

DEFINE WINDOW oWnd TITLE "Menu"

oWnd:bKeyDown := {|| InterpretaTeclado()}

@ 0,121 BTNBMP oBoton0 ;
SIZE 120, 50 ;
PROMPT "0-Salir";
ACTION (EjecutaMenu("0"))

@ 51, 0 BTNBMP oBoton1 ; // Si clico en el boton pierde foco el get y por lo tanto ejecuta el valid
SIZE 120, 50 ;
PROMPT "1-Opcion 1";
ACTION ( EjecutaMenu("1"))

@ 51,121 BTNBMP oBoton2 FILE "2-Pda.bmp" ;
SIZE 120, 50 ;
PROMPT "2-Opcion 2";
ACTION ( EjecutaMenu("2"))

ACTIVATE WINDOW oWnd

RETU NIL

STATIC FUNC EjecutaMenu(pOpcion)
********************************
MsgInfo("P:"+pOpcion)

RETURN .F. // Para que nunca salga de oOpcion

STATIC FUNC InterpretaTeclado()
********************************
LOCAL nOpcion := LastKey()

IF nOpcion >= Asc("0") .AND. nOpcion <= Asc("9")
EjecutaMenu(Asc(nOpcion))
ENDIF

RETURN .T.
Jose Valle
Bilbao
Spain
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Jose,

Hazlo así:

Code: Select all

#include "FWCE.ch" 
#INCLUDE "hbclass.ch" 
#include "Directry.ch" 


REQUEST DBFCDX 
REQUEST HB_LANG_ESWIN 
REQUEST HB_CODEPAGE_ESWIN // Para establecer código de página a Español (Ordenación, etc..) 


//----------------------------------------------------------------------------// 

FUNCTION Main() 
*************** 

LOCAL oWnd 

PRIVATE oBoton0,oBoton1,oBoton2 

DEFINE WINDOW oWnd TITLE "Menu" 

oWnd:bKeyDown := { | nkey | InterpretaTeclado( nKey )} 

@ 0,121 BTNBMP oBoton0 ; 
SIZE 120, 50 ; 
PROMPT "0-Salir"; 
ACTION (EjecutaMenu("0")) 

@ 51, 0 BTNBMP oBoton1 ; // Si clico en el boton pierde foco el get y por lo tanto ejecuta el valid 
SIZE 120, 50 ; 
PROMPT "1-Opcion 1"; 
ACTION ( EjecutaMenu("1")) 

@ 51,121 BTNBMP oBoton2 FILE "2-Pda.bmp" ; 
SIZE 120, 50 ; 
PROMPT "2-Opcion 2"; 
ACTION ( EjecutaMenu("2")) 

ACTIVATE WINDOW oWnd 

RETU NIL 

STATIC FUNC EjecutaMenu(pOpcion) 
******************************** 
MsgInfo("P:"+pOpcion) 

RETURN .F. // Para que nunca salga de oOpcion 

STATIC FUNC InterpretaTeclado(nKey) 
******************************** 

IF nKey >= Asc("0") .AND. nKey <= Asc("9") 
   EjecutaMenu(Chr(nKey)) 
ENDIF 

RETURN .T.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
josevalle
Posts: 65
Joined: Fri Oct 14, 2005 6:20 pm
Location: Bilbao

Post by josevalle »

Gracias Antonio, funciona perfecto
Jose Valle
Bilbao
Spain
Post Reply