Página 1 de 1

Status Bar com gtwvw

Enviado: 04 Set 2008 11:37
por SandroBelarmino
Olá pessoal,

Peguei um exemplo para compilar meu programa com gtwvw e nesse exemplo tem uma status bar na janela principal que mostra a hora no canto direito, estou tentando incluir um texto na primeira parte da status bar (lado esquerdo) porém nao estou conseguindo.
Alguém sabe me dizer o que tenho que fazer?
Abaixo segue o código que gera a status bar.

Código: Selecionar todos

if wvw_SBcreate() > 0 .and.;
   wvw_SBaddPart(, "99:99:99") > 0
   wvw_SetTimer(, 1000)
endif
Valeu galera !!

Re: Status Bar com gtwvw

Enviado: 04 Set 2008 11:52
por SandroBelarmino
Fiz a seguinte alteração no código e deu certo.

Código: Selecionar todos

if wvw_SBcreate() > 0 .and.;
   wvw_SBaddPart(, "99:99:99") > 0
   wvw_SetTimer(, 1000)
   wvw_SBSetText(,0,'MINHA MENSAGEM AQUI')
endif
Se mais alguém tiver a mesma dúvida espero ter ajudado !!! :)) :))
Forte abraço a todos.

Re: Status Bar com gtwvw

Enviado: 20 Out 2008 11:01
por TerraSoftware
Caro colega sandro, compilei seu exemplo, mas o relogio nao aparece, a funcao wvw_SetTimer(, 1000) retorno .f., o resto deu certo.

O que estou fazendo errado? pode me ajudar?

Re: Status Bar com gtwvw

Enviado: 20 Out 2008 11:29
por SandroBelarmino
Voce precisa incluir a seguinte funcao no seu aplicativo:

Código: Selecionar todos

function WVW_TIMER(nWinNum, hWnd, message, wParam, lParam)
* this function is called every certain interval, by GTWVW gtwndproc
   WVW_SBsetText(0, 1, time())
return NIL
Ela pode ser incluida no prog. principal mesmo.
Abraço.

Re: Status Bar com gtwvw

Enviado: 20 Out 2008 14:04
por TerraSoftware
Sandro, deu certinho, relogio funcionando. Gostei muito dessa possibilidade de usar o timer().

Agora me diga uma coisa, por favor, como faço para criar novos eventos e chama-los em lugares diferentes?

Por exemplo: as funcoes que vc me passou vai mostrar time() a cada 1000 milessegundos na barra de estatus da janela principal, agora eu gostaria que ao entrar na tela de venda, por exemplo, disparace um outro evento a cada x milessegundos, tem como fazer isso?

Tem como eu passar um parametro pra funcao wvw_timer() informando qual funcao ela deve executar? Ou algum outro tipo de teste?

Re: Status Bar com gtwvw

Enviado: 20 Out 2008 14:30
por sygecom
Bom vou pegar o bonde andando, mas pelo o que entendi, basta vc mencionar direto o que você deseja mostrar na STATUS BAR:
WVW_SBSetText( 0,0, "AQUI VAI SEU TEXTO")

Re: Status Bar com gtwvw

Enviado: 20 Out 2008 16:40
por TerraSoftware
Amigo sygecom, agradeço sua ajuda, mas nao era exatamente isso que eu perguntei, vejo só, eu queria fazer assim:

Código: Selecionar todos

******************************************************
function WVW_TIMER(nWinNum,hWnd,message,wParam,lParam)
******************************************************
if algumacoisa
   WVW_SBsetText(0, 1, time())
endif
if outracoisa
   minhafuncaoqualquer()
endif
if novacoisa
   mostraitemnatela()
endif
return
Desta forma eu poderia usar a funcao timer para disparar diversos eventos diferentes, nao somente na StatusBar, chamados de diversos pontos diferentes. Acho inclusive que se eu criar variaveis publicas, provavelmente irei conseguir, tipo assim: hora algumacoisa é .t. hora é .f., assim a funcao timer vai executar o que eu quero na hora que eu quero.

Este é o jeito mais facil? ou existe outro?

Re: Status Bar com gtwvw

Enviado: 21 Out 2008 11:27
por sygecom
Justamente, acho que seu modo é o modo mais facil, ou pode deixar uma rotina em BACKGROUND rodando e atualizando sua BARRA de STATUS conforme uma variavel public:

Código: Selecionar todos

Function main
nTask1 := HB_BackGroundAdd( {|| Atualiza_barra() }, 5000 )  // atualiza a cada 5 segundos
return

Function Atualiza_barra
WVW_SBsetText(0, 1, time() ) // atualiza a hora
WVW_SBSetText( 0,0, vVARIAVEL_PUBLICA ) // atualiza a janela que esta aberta
return