Refresh em Dbedit.

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Ademir
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 31 Jul 2007 16:28
Localização: Porto Ferreira-SP

Refresh em Dbedit.

Mensagem por Ademir »

Boa tarde amigos:

Tenho uma função de usuário para tratar as teclas digitados no Dbedit. Ela verifica as teclas de exceção quando modo=4 e executa a rotina que preciso para cada tecla. O problema é que como o sistema funciona em rede, preciso manter o arquivo atualizado em todas as estações. Já consegui, por exemplo, atualizar configurando o F10 para dar um refresh manual e funciona dessa forma:

Código: Selecionar todos

func myfunc(modo)
if modo=1
   mens(´Inicio do arquivo.´)
endif
if modo=2
   mens(´Fim do arquivo´)
endif
if modo=4
   if lastkey()=-9
      return 2
   endif
   if lastkey()=-1 // pesquisar por codigo
      return 0
   endif
   ...
   ...
   ...
endif
return 1
As rotinas no meu programa são executadas fora da função do usuário. O função reconhece a tecla pressionada, abandona a dbedit(), executa a rotina e retorna a dbedit o que força o refresh na estação onde é executada:

Código: Selecionar todos

do while .t.
   dbedit(li,ci,lf,cf,´myfunc´,,,,)
   if lastkey()=-1
       .....
    endif
enddo
O que preciso é de um refresh automático (por tempo / a cada n segundos). Fazendo manualmente, funciona, como no exemplo do F10.

Espero que tenham entendido meu problema.

Grato

Ademir.
Ademir
Usuário Nível 3
Usuário Nível 3
Mensagens: 170
Registrado em: 31 Jul 2007 16:28
Localização: Porto Ferreira-SP

Re: Refresh em Dbedit.

Mensagem por Ademir »

Em tempo.... O F10 não está funcionando retornando 2... funciona retornando 0, pois como ele abandona o dbedit e não é uma função tratada como rotina válida, ele retorna a dbedit atualizando-a.
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: Refresh em Dbedit.

Mensagem por gvc »

O DBEdit não foi projetado para funcionar como vc esta querendo.

Para atender sua necessidade veja o Browse, ele permite colocar tempo para refazer a tela. Só para constar, o DBEdit é baseado nele.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Responder