Página 1 de 1

Em vez de "Menu To", Função com temporizador...

Enviado: 13 Set 2015 06:35
por lugab
Bom dia, colegas.

Vcs poderiam contribuir com uma função com temporizador para eu AGREGAR ou SUBSTITUIR o "MENU TO nChoice" do exemplo abaixo ?
O meu objetivo é encerrar todos os "Menu To" após "N" minutos de inatividade.

Código: Selecionar todos

LOCAL nChoice := 2
do while. .t.
        SET WRAP ON
        SET MESSAGE TO 23 CENTER
        @ 6, 10 PROMPT "Add"  MESSAGE "New Acct"
        @ 7, 10 PROMPT "Edit" MESSAGE "Change Acct"
        @ 9, 10 PROMPT "Quit" MESSAGE "Return to DOS"
        MENU TO nChoice
        //
        DO CASE
        CASE nChoice = 0
           QUIT
        CASE nChoice = 1
           NewAccount()
        CASE nChoice = 2
           ChangeAccount()
        CASE nChoice = 3
           QUIT
        ENDCASE
        RETURN
PS: Compilo meus fontes clipper com Harbour e Xharbour (console)
Grato,

Em vez de "Menu To", Função com temporizador...

Enviado: 13 Set 2015 08:54
por Toledo
Gabriel, não seria o caso de usar o KeySec() que você já discutiu neste tópico:

viewtopic.php?f=4&t=13636&p=88430#p88430

Abraços,

Em vez de "Menu To", Função com temporizador...

Enviado: 13 Set 2015 10:27
por lugab
Oi, Toledo, obrigado pelo help !!!

É q a solução a q se refere o tópico q vc citou parou de funcionar faz um tempão...
A Função KeySec() não espera passar os 10 segundos e o lastkey() já desce com o valor Zero
Até voltei a usar o Harbour 2.0, mas a Função keysec() não responde mais

Código: Selecionar todos

Tk=0
do whil .t.
   @ 5,3 clea to 22,78
   keyb chr(0)
   inkey() // usando isso, o KeySec() avança imnediatamente com valor 0, não usando o KeySec() fica preso horas a fio e não desce nunca
   op=0
   @ 08,25 PROM "1 - Referencias" 
   @ 09,25 PROM "2 - Entradas" 
   @ 10,25 PROM "3 - Saidas"
   @ 11,25 PROM "4 - Precos"
   @ 12,25 PROM "5 - Relatorios em tela"
   @ 13,25 PROM "6 - Relatorios em impressora"
   @ 14,25 PROM "7 - Utilitarios"
   @ 15,25 prom "8 - Teste"
   @ 16,25 prom "9 - Sai"

   keysec(27,10,,.T.)
   Tk=lastkey()
   if Tk=27
      Alert("Programa encerrado por inatividade.....",,,,,1) 
      retu
   endif  

   menu to Op


Em vez de "Menu To", Função com temporizador...

Enviado: 13 Set 2015 17:54
por JoséQuintas
Aqui uso minha própria função pra prompt, desde os tempos de clipper.
Na função uso:

Código: Selecionar todos

nKey := Inkey(120)
IF nKey == 0
   nKey := K_ESC
ENDIF
Ao invés de mexer no sistema inteiro, mexe na função que atende o sistema inteiro.