Página 1 de 1

PROMPT com MENU TO

Enviado: 19 Out 2019 01:46
por Edmo

Código: Selecionar todos

DO WHILE .T.
 @ 02,29 PROMPT " A - OPC 1 "
 @ 03,29 PROMPT " B - OPC 2 "
 @ 04,29 PROMPT " C - OPC 3 "
 @ 05,29 PROMPT " D - OPC 5 "

 MENU TO MENU
 
 IF LASTKEY()=27
  EXIT
 ENDIF
 
 @ 10,29 SAY "ESTOU NA OPCAO "+STR(MENU)
  
ENDDO

Boa noite a todos.

Gostaria de saber como identificar a opção do menu enquanto estou navegando com as setas sem pressionar o enter

Eu só consigo saber quando pressiono o enter

Isto é possível ?

Obrigado

PROMPT com MENU TO

Enviado: 19 Out 2019 03:40
por Edmo
Consegui resolver o problema e, se interessar, segue a solução que adotei.

Código: Selecionar todos


PUBLIC GET01, GET02, GET03, GET04, GET05, GET06

STORE SPACE(10) TO GET01, GET02, GET03, GET04, GET05, GET06
    
TELA1=SAVESCREEN(00,00,24,79)
DO WHILE .T.
 RESTSCREEN(00,00,24,79,TELA1)
 @ 02,29 PROMPT " A - OPC 1 " MESSAGE {||UDF("Mensagem 1",1)}        // envia a mensagem para a linha 24 e
 @ 03,29 PROMPT " B - OPC 2 " MESSAGE {||UDF("Mensagem 2",2)}        ?? a opção atual do menu para exibir as telas
 @ 04,29 PROMPT " C - OPC 3 " MESSAGE {||UDF("Mensagem 3",3)}
 @ 05,29 PROMPT " D - SAIR   " MESSAGE {||UDF("Mensagem 4",4)}

 MENU TO MENUA
 
 IF LASTKEY()=27
  EXIT
 ELSEIF LASTKEY()=13
  IF MENUA=1
   OPC1(1)            //PARAMETRO "1" PASSA A INSTRUCAO PARA UTILIZAR A FUNCAO "READ"
  ELSEIF MENUA=2
   OPC2(1)
  ELSEIF MENUA=3
   OPC3(1)
  ELSE
   EXIT
  ENDIF
  
 ENDIF
 
ENDDO
SET COLOR TO
CLOSE ALL
RETURN(.T.)



FUNCTION UDF(MENSAG,MENUB) 
@ 24,00 say MENSAG
IF MENUB=1
 OPC1(2)   //PARAMETRO "2" PASSA A INSTRUCAO PARA EXIBIR OS GETS"          
ELSEIF MENUB=2
 OPC2(2)
ELSEIF MENUB=3
 OPC3(2)
ELSEIF MENUB=4 
 @ 10,00 clear to 18,79
ENDIF
RETURN(.T.)           




FUNCTION OPC1(PARAM)
@ 10,00 clear to 18,79
@ 10,10 SAY "OPC1-GET01  " GET GET01 PICT "@!"
@ 12,10 SAY "OPC1-GET02  " GET GET02 PICT "@!"
IF PARAM=1
 READ
ELSE
 CLEAR GETS
ENDIF
RETURN(NIL)



FUNCTION OPC2(PARAM)
@ 10,00 clear to 18,79
@ 13,10 SAY "OPC2-GET03  " GET GET03 PICT "@!"
@ 15,10 SAY "OPC2-GET04  " GET GET04 PICT "@!"
IF PARAM=1
 READ
ELSE
 CLEAR GETS
ENDIF
RETURN(NIL)



FUNCTION OPC3(PARAM)
@ 10,00 clear to 18,79
@ 16,10 SAY "OPC3-GET05  " GET GET05 PICT "@!"
@ 18,10 SAY "OPC3-GET06  " GET GET06 PICT "@!"
IF PARAM=1
 READ
ELSE
 CLEAR GETS
ENDIF
RETURN(NIL)

obrigado a todos