Página 1 de 1

Exemplo ole da hwgui.

Enviado: 08 Fev 2009 00:40
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.

Re: Exemplo ole da hwgui.

Enviado: 12 Fev 2009 10:53
por clebervn
Puxa, eu ando atrás de um exemplo destes faz tempo....
aonde vc definiu essa ochar ???
tem como vc explicar melhor ??

abc

Re: Exemplo ole da hwgui.

Enviado: 12 Fev 2009 14:55
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

Re: Exemplo ole da hwgui.

Enviado: 12 Fev 2009 17:06
por clebervn
tem q compilar algo junto no .BC ???

ou tem q incluir algum include ???

Re: Exemplo ole da hwgui.

Enviado: 13 Fev 2009 16:48
por marcos.gurupi
Nada ele usa apenas o agent do proprio windows.

Marcos Roberto.

Re: Exemplo ole da hwgui.

Enviado: 16 Fev 2009 13:47
por clebervn
pra mim deu erro já na linha do toleauto....

Re: Exemplo ole da hwgui.

Enviado: 16 Fev 2009 14:03
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...

Re: Exemplo ole da hwgui.

Enviado: 16 Fev 2009 17:10
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

Re: Exemplo ole da hwgui.

Enviado: 16 Fev 2009 17:47
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.