Página 1 de 1

sair de um Dbedit se nao estiver usando

Enviado: 23 Jul 2010 21:07
por porter
boa noite pessoal, gostaria de saber o seguinte, tem como sair de um Dbedit apos um determinado tempo sem usar, por exemplo um cadastro de cliente, se ninguem usa-lo ou seja incluir, alterar, etc algum registro, seria pressionada automaticamente uma tecla esc por exemplo, depois de um tempo pre-estabelecido e sairia do Dbedit. Isso porque o usuario, nao esta usando o sistema, e estao abertos varios arquivos, se sair de forma automatica, todos os arquivos serao fechados.

Nao sei se expliquei direito.

desde ja obrigado.

Re: sair de um Dbedit se nao estiver usando

Enviado: 23 Jul 2010 22:26
por alaminojunior
Precisaría ver como o colega está codificando este dbedit() para sugerir algo.
O que eu aconselho é trocar o dbedit por tbrowse que é mais flexível para isso.

Re: sair de um Dbedit se nao estiver usando

Enviado: 24 Jul 2010 15:13
por ANDRIL
Amigo, abaixo segue o código que talvez venha a lhe servir.

Código: Selecionar todos

*--variavel com conteudo de tempo maximo para a ociosidade em segundos
maxocioso=5 

*--abra se dbf aqui
use c:\np\produto
dbedit(00,00,24,79,"","funcao")
Aqui a funcao de controle para o seu DbEdit()

Código: Selecionar todos


function funcao
parameters modo, campo
l_=row()
c_=col()
t=field(campo)
t1=&t

@l_,c_ say t1 colo "n/w"

if lastkey()=27
   return 0

elseif lastkey()=13
   return 0

else
    segundos=0
    keyb chr(0) 
    do while lastkey()=0
          inkey(1.00)
          if lastkey()#0
             keyb chr(lastkey())
             exit
          endif
          segundos++
          if segundos=maxocioso
                cls
                ? "A funcao DBEDIT foi finalizada por ociosidade."
                close all
                quit
          endif
          @24,00 say "Tempo ocioso: "+alltrim(str(segundos))+" segundos."
    enddo
    return 2
endif
O ideal seria voce usar uma função em Background usando a BGEVENT.LIB que permite colocar funções rodando em segundo plano, assim, voce criaria uma função que se o sistema ( independente de onde estivesse, DbEdit, Achoice, Get, Prompt etc ) nao tivesse uso de teclado por um determinado tempo, o sistema seria bloqueado e seus arquivos fechados ou simplesmente fecharia o sistema.

Boa Sorte.
Ate+