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: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

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, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, 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