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.