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

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

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

Mensagem 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,
lugab
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

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

Mensagem 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,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
lugab
Colaborador
Colaborador
Mensagens: 843
Registrado em: 19 Mai 2009 15:58

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

Mensagem 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

lugab
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20420
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (Linux/Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder