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.
sair de um Dbedit se nao estiver usando
Moderador: Moderadores
- alaminojunior
- Colaborador

- Mensagens: 1717
- Registrado em: 16 Dez 2005 21:26
- Localização: Ubatuba - SP
Re: sair de um Dbedit se nao estiver usando
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.
O que eu aconselho é trocar o dbedit por tbrowse que é mais flexível para isso.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
MySQL c/ SQLRDD
HwGui + GTWVG
Re: sair de um Dbedit se nao estiver usando
Amigo, abaixo segue o código que talvez venha a lhe servir.
Aqui a funcao de controle para o seu DbEdit()
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+
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")
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
Boa Sorte.
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
