Exemplo ole da hwgui.

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Exemplo ole da hwgui.

Mensagem por marcos.gurupi »

Caros, eu estou implementando em meu sistema o uso do agent, para mensagem de pendencias financeiras em meu sistema, ou seja, quando o usuario estiver me devendo o agent entra com uma mensagem. Gostaria de saber onde eu encontro mais informacoes sobre este exemplo, quero saber o tamanho da mensagem e principalmente o tempo que a mensagem deverah permanecer na tela. Em algumas ocasioes tenho q apresentar mensagens grandes e o agente acaba sendo rapido d+. O exemplo abaixo eu consigo deixar o agent na tela mas a mensagem desaparece rapidamente.

Código: Selecionar todos

Function Falar(oEdit)
Local aTop := ClientToScreen( oForm2:handle,0,0 )
Local cText := oEdit //GetEditText( oEdit:oParent:handle, oEdit:id )

   oChar:Show()
   oChar:MoveTo( aTop[1]+20, aTop[2]+70 )
   oChar:LanguageID := Iif( Asc(cText)>122,"&H0419","&H0409" )
   oChar:Speak( cText )
   Inkey(iif(Len(cText)<50,15,20))
   oChar:Hide()
Return Nil

Marcos Roberto.
Marcos Roberto
NetService Software
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: Exemplo ole da hwgui.

Mensagem por clebervn »

Puxa, eu ando atrás de um exemplo destes faz tempo....
aonde vc definiu essa ochar ???
tem como vc explicar melhor ??

abc
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Exemplo ole da hwgui.

Mensagem por marcos.gurupi »

Vou colocar o exemplo completo logo abaixo:

Código: Selecionar todos

Static Function AtivaMsg(vMensagem)

Local oAgent
Local oEdit:=vMensagem
oAgent:=TOleAuto():New("Agent.Control.2")
IF oAgent == Nil .OR. oAgent:hObj == 0
   MsgInfo(SubStr(vMensagem,1,50)+chr(10)+chr(13)+;
           SubStr(vMensagem,51,100),"Alerta do Sistema")
ELSE
   oAgent:Connected := 1
   oAgent:Characters:Load("Default")
   oChar := oAgent:Characters("Default")
   IF oChar == Nil .OR. oChar:hObj == 0
      MsgInfo(SubStr(vMensagem,1,50)+chr(10)+chr(13)+;
              SubStr(vMensagem,51,100),"Alerta do Sistema")
   ELSE
      Falar(oEdit)
   ENDIF
ENDIF
IF oAgent != Nil .AND. oAgent:hObj != 0
   oAgent:Characters:UnLoad("Default")
   //oAgent:End()
ENDIF


Function Falar(oEdit)
Local aTop := ClientToScreen( oForm2:handle,0,0 )
Local cText := oEdit //GetEditText( oEdit:oParent:handle, oEdit:id )

   oChar:Show()
   oChar:MoveTo( aTop[1]+20, aTop[2]+70 )
   oChar:LanguageID := Iif( Asc(cText)>122,"&H0419","&H0409" )
   oChar:Speak( cText )
   Inkey(iif(Len(cText)<50,15,20))
   oChar:Hide()
Return Nil
Marcos Roberto
NetService Software
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: Exemplo ole da hwgui.

Mensagem por clebervn »

tem q compilar algo junto no .BC ???

ou tem q incluir algum include ???
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

Re: Exemplo ole da hwgui.

Mensagem por marcos.gurupi »

Nada ele usa apenas o agent do proprio windows.

Marcos Roberto.
Marcos Roberto
NetService Software
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: Exemplo ole da hwgui.

Mensagem por clebervn »

pra mim deu erro já na linha do toleauto....
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Exemplo ole da hwgui.

Mensagem por sygecom »

Olá Clebervn,
Se você estiver usando xHarbour, tente assim:

Código: Selecionar todos

****************************
Function AtivaMsg(vMensagem)
****************************
Local oAgent, oChar

TRY
   oAgent := GetActiveObject( "Agent.Control.1" )
CATCH e
   TRY
      oAgent := CreateObject( "Agent.Control.1" )
   CATCH e
      RETURN
   END
END

oAgent:Connected := .t.
oAgent:Characters:Load("Default")
oChar := oAgent:Characters("Default")
oChar:MoveTo( 200,200, 0 )
oChar:Show()
oChar:Speak( vMensagem )
oChar:LanguageID := "&H0416" // pt-br
Inkey(iif(Len(vMensagem)<50,15,20))
oChar:Hide()
oAgent:Characters:UnLoad("Default")
return
Olá Marcos,
Você tentar passar or TAG no Speak() que acho que tem como aumentar o tempo da mensagem. De uma olhada no MSDN da Microsoft que tem exemplos e documentação completa.

Ex:
oChar:Speak( "\Pau=8000\" + vMensagem + "\Spd=90\" )

Obs: Não testei...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
clebervn
Usuário Nível 3
Usuário Nível 3
Mensagens: 286
Registrado em: 12 Jun 2007 10:49
Localização: Florianópolis/SC

Re: Exemplo ole da hwgui.

Mensagem por clebervn »

o mago ai apareceu... porém o q eu desejava mesmo era somente uma caixa de diálogo q mostrasse mensagem e fechasse automaticamente apos tempo determinado...

tks
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Exemplo ole da hwgui.

Mensagem por sygecom »

Bom, eu não uso esse Agent. Mas tenta da estudada no MSDN da microsoft como funciona esse tal de Microsoft Agent, para fazer o que você quer. Boa Sorte.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder