** Rotina aproveitada do exemplo do help do Visual XHarbour e modificada por mim ****
Código: Selecionar todos
PROCEDURE oRelogio(vPoupa)
***********************************************************
* oRelogio()
* Rotina para colocar um relógio em tempo real na tela
* com pupador de tela
*
* Sintaxe:
* oRelogio([vPoupa])
* [vPoupa] = Opcional - Se definida como .T. (padrão)
* ativa sua rotina de poupar a tela
* Se .F. desativa
***********************************************************
PUBLIC nTask
PUBLIC vTC, vTDecorr
if empty(vPoupa) .or. vPoupa == nil
vPoupa := .t.
endif
vTC := 0
vTDecorr := Seconds()
HB_IdleAdd( {|| HB_BackGroundRun() } )
nTask := HB_BackGroundAdd( {|| ShowTime( 1, MaxCol()-9, vPoupa ) }, 1000 )
SET BACKGROUND TASKS ON
RETURN
********************************
PROCEDURE ShowTime( nRow, nCol, vPoupaTela )
*****************************************
* Rotina em segundo plano para o relógio
* e o poupador de tela
*****************************************
@ nRow, nCol SAY CHR(180) COLOR "W+/G"
@ Row(), Col() SAY Time() COLOR "N/G"
@ Row(), Col() SAY CHR(195) COLOR "W+/G"
if vPoupaTela
if vTC <> lastkey()
vTC := lastkey()
vTDecorr := seconds()
else
if seconds() - vTDecorr > 300 // 5 MINUTOS = 300 SEGUNDOS (60*5)
do Sua_Rotina_poupar_tela // Coloque aqui sua rotina de poupar tela
vTDecorr := Seconds()
vTC := Lastkey()
endif
endif
endif
RETURN
********************************Código: Selecionar todos
** Exemplo
PROCEDURE Poupa()
LOCAL vTela
vTela := savescreen(0,0,24,79)
scroll(00,00,24,79,00)
do while inkey()=0
...
...
...
if lastkey()>0 //.or.inkey()=27
exit
endif
enddo
restscreen(0,0,24,79,vTela)
return(nil)
HB_BackGroundDel( nTask )
obs: "nTask" deve ser uma variável publica

