Página 1 de 1

comando para sair do get após certo tempo

Enviado: 15 Jun 2009 21:34
por Glauco Cruz Costa
Tem como colocar algum comando jundo com o GET para, após alguns segundos, se nada for digitado, ele chamar alguma função ou procedimento?
Obrigado. :-o

Re: comando para sair do get após certo tempo

Enviado: 15 Jun 2009 22:09
por Maligno
Método gambiarra: usar um timer em background que emita um ESC após decorrido o tempo limite. Para isso, você tanto pode usar a biblioteca NanFor (FT_ONTICK()) como a biblioteca BGEvents. Tenho as duas no meu site. Clique aqui.

Método mais correto: definir um leitor especial para o campo GET em questão. O sub-sistema GET admite a definição de um leitor diferente do padrão para um campo GET. Após executar um @ ..GET, é criado um pseudo-objeto GET. Esse tipo especial de dado admite uma reconfiguração do leitor que será utilizado para a entrada de dados deste campo. Exemplo simples: oGet:Reader := {||MyReader()}. Assim, quando o GETLIST estiver processando a lista de GETs (supondo que haja mais de um campo), ao entrar neste campo específico e descobrir que ele possui um bloco de código definindo um novo leitor, ele deixará de usar o leitor padrão para usar este.

Re: comando para sair do get após certo tempo

Enviado: 15 Jun 2009 23:10
por Glauco Cruz Costa
nao entendi... :(

Re: comando para sair do get após certo tempo

Enviado: 15 Jun 2009 23:16
por Maligno
Qual você não entendeu? O método gambiarra ou o do GetList (o mais correto)?

Re: comando para sair do get após certo tempo

Enviado: 15 Jun 2009 23:32
por Glauco Cruz Costa
nenhum.
passa um exemplo, pf.

comando para sair do get após certo tempo

Enviado: 15 Jun 2009 23:50
por Pablo César
Ja teve assunto similar a este visto em outro tópico no passado. Do qual me lembro foram dado alguns exemplos e comentários neste tópico: viewtopic.php?f=1&t=8125&start=0&st=0&sk=t&sd=a&hilit=KEYSEC

Re: comando para sair do get após certo tempo

Enviado: 16 Jun 2009 00:05
por Maligno
Com relação ao método "gambiarra", o tópico apontado pelo Pablo realmente já dá umas boas dicas de como funcionaria, tanto com a FT_OnTick(), quanto com a biblioteca BGEvents.

Re: comando para sair do get após certo tempo

Enviado: 20 Jun 2009 11:21
por billy1943
Eu uso a seguinte forma:
Nas rotinas que precisa dar um READ temporizado inicio com:

#include "inkey.ch"
#xcommand READ [TIMEOUT <n>] [START AT <x>] =>;
ReadModal( GetList, <n>, <x> ); GetList := {}
*******************************************************************
// o Clipper já tem a função TIMEDOUT() no sistema GETSYS;
********************************************************************
no READ que quero que a rotina seja abandonada após um determinado tempo, exemplo 30 segundos, coloco:

READ TIMEOUT 30

IF LASTKEY() == K_ESC .or. TIMEDOUT()
// comandos para sair
ENDIF

comando para sair do get após certo tempo

Enviado: 20 Jun 2009 15:02
por Pablo César
Billy, interessante mas não funcionou comigo. E os GETSYS do Clipper não possuem TIMEDOUT algum. Você poderia postar seu GETSYS ?

Re: comando para sair do get após certo tempo

Enviado: 20 Jun 2009 22:14
por billy1943
Oi, Pablo César,

a minha versão do GETSYS tem + de 15.000 bytes e e´modificada.
Se quiser mande um e-mail para:

agua.nova@hotmail.com

Eu te mando o fonte e você analisa inclusive outras funções interessantes que ele tem.

Re: comando para sair do get após certo tempo

Enviado: 21 Jun 2009 09:55
por ANDRIL
Não sei se já tentou, mais aqui no site do Toledo tem uma função de tempo no GET, ALTERANDO os parametros vc poderá definir uma rotina ou função a ser executada quando o tempo expirar, segue o link:

https://pctoledo.org/download/cop ... t&deonde=2

Mais nesse caso só agira no GET, ja a BGEVENTS podera acionar em qualquer parte do sistema, exemplo, fazer uma proteção de tela.

Ate+,

Re: comando para sair do get após certo tempo

Enviado: 22 Jun 2009 22:16
por billy1943
Não, a forma com que uso o GETSYS é um pouco diferente das acima enunciadas.
Para quem quiser utilizá-la, segue o fonte em anexo.