![]() |
||||||||
|
|
||||||||
|
| ||||||||


| com exemplos em VB |
| Componente para deixar forms em Vb semelhantes às telas do winnamp |
| Componente para colocar sua aplicação VB no Systray |
| Componente para transformar sua aplicação VB em serviço |
| Ferramentas úteis para quem usa Olap Server |
| |

|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pesquisa personalizada
Quer
saber mais?
MS Agent 2.0 : Dando cara e gestos ao Falador Poucos imaginam que por trás daquele inocente clips no Microsoft Ofice esconde-se um componente muito poderoso, que nos permite criar uma alta interatividade com o usuário em nossas aplicações, tanto em aplicações VB como em sites na Web. O Microsoft Agent é uma tecnologia que nos permite criar personagens e utilizar suas animações na interface gráfica de nossas aplicações e se associa com mecanismos de fala e identificação de voz, possibilitando-nos a criação de uma interface muito rica. O Microsoft Agente é um complemento ao que mostramos em nosso artigo "Faça sua aplicação em VB Falar" , pois utilizando o Microsoft Agent podemos fazer com que as frases ditas pela aplicação sejam atribuidas ao personagem do Agent. Vamos montar uma aplicação em VB que utilize o Microsoft Agent para demonstrarmos os seus recursos. Os personagens do Microsoft Agent são mantidos em arquivos com a extensão .ACS . O Agent cria um diretório windows\msagent para guardar seus arquivos e personagens. A principio o Microsoft Agent vem com 4 personagens : Genie, Merlin, Robbie e Peedy , cujos arquivos podem ser baixados do endereço http://www.microsoft.com/msagent/characterdata.htm . Mas o Microsoft Agent possui um editor de personagens que permite que qualquer um crie um novo personagem para o Agent. Esse editor poder ser baixado do endereço http://www.microsoft.com/msagent/devdownloads.htm Um problema que você já deve estar imaginando é : então o usuário precisará ter esses arquivos instalados na máquina ? Dependendo da aplicação sim. Mas a Microsoft mantém um servidor na web com os arquivos de personagens do Microsoft Agent, portanto também é possível fazer com que o personagem seja obtido de um site na web caso não esteja instalado. Neste caso os arquivos do personagem são diferentes. O arquivo .ACS, para uso local, possui todos os dados do personagem e suas animações. Para a otimização do acesso via Web, quando os arquivos estão em um servidor Web devem ser divididos em .ACA e .ACF , separando os dados de um personagem de suas animações. O endereço em que a Microsoft mantém os arquivos dos personagens é http://agent.microsoft.com/agent2/chars/ . Cada personagem é mantido em um diretório com o próprio nome, por exemplo, o personagem genie é mantido em http://agent.microsoft.com/agent2/chars/genie/genie.acf . Iniciemos a construção da aplicação e vamos ver como chamar estes personagens. O primeiro passo será, em project->components, adicionarmos o Microsoft Agent 2.0. Para facilitarmos o acesso ao personagem, vamos definir no general uma variável para conter o personagem :
No Load do form vamos carregar o personagem :
O 1o parâmetro é um nome que podemos criar, servirá para manipularmos o personagem durante a aplicação. O 2o é o arquivo contendo o personagem. Neste exemplo estou usando o arquivo merlin.acs que encontra-se no diretório default do agent (windows/msagent). Se estivesse em outro diretório, ou mesmo em um servidor web, isso deveria ser especificado junto ao nome do arquivo. Se, por outro lado, o nome do arquivo não for especificado, o Agent carregará o personagem default do usuário que encontra-se logado na máquina. Após carregar o personagem, podemos atribui-lo a nossa variável,
simplificando a manipulação do personagem :
Observe que entre as aspas foi usado o nome definido para o personagem na instrução Load. Agora que definimos a variável podemos utiliza-la na aplicação. Caso contrário teríamos sempre que fazer referência ao personagem dentro da coleção Characters. Vamos fazer com que o merlin agradeça pelo usuário estar usando este sistema. Cada personagem do Agent possui uma série de ações que ele pode executar, tais ações são definidas pelo criador do personagem. No endereço http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msagent/hh/msagent/intro_9ywk.asp você encontra a documentação on-line do Microsoft Agent e, pesquisando na lista de tópicos do lado esquerdo da tela você encontrará a lista de animações para os personagens padrões do Microsoft Agent. Para executarmos uma animação devemos utilizar o método "Play". Existem animações que fazem loop, outras não. As animações que fazem loop exigem que você chame o método "Stop" antes que qualquer outra ação seja solicitada ao Agent. As animações que não fazem loop não exigem isso. Assim sendo, faremos com que o Merlin fique com cara de agradecido. Antes porém devemos tomar o cuidado de exibi-lo, pois o Load apenas o carrega para a memória, não faz com que fiquei visível.
Neste momento você já pode executar a aplicação para ver como está ficando. O Merlin precisa também falar uma frase de boas vindas para o usuário. Isso mesmo, falar. Através do método "Speak" podemos colcar uma frase em um pequeno balão sobre o Merlin e, se ativarmos os recursos sonoros, a frase será reproduzida na placa de som. Veja :
Se executar a aplicação neste momento você verá que a frase sairá ininteligível, com som americano. Isso por que não definimos a linguagem com que o nosso personagem estará falando. Veja agora :
Você pode obter os códigos de linguagem aceitos pelo Agent no endereço http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msagent/hh/msagent/intro_9ywk.asp Com a linguagem definida para português é possível que você não ouça nada sendo dito. Isso ocorre se os drivers de linguagem para o português não estiverem instalados na sua máquina. Nesse caso você pode baixa-los de nossa página de downloads. Para que a aplicação fiquei ainda mais interessante podemos tornar o formulário invisível (visible=false), fazendo com que apenas o Agent seja visível na tela. O componente do Agent tem eventos, ou seja, podemos definir reações de nosso personagem ao que o usuário fizer com ele. Vamos começar definindo o que o personagem fará quando o usuário não estiver fazendo nada. No caso do Merlin, que é velho, ele dormirá. O evento para isso é o IdleStart e a animação é Idle3_2. Veja como fica o código :
A animação idle3_2 é uma animação circular, portanto deveremos tomar o cuidado de usar o STOP quando formos realizar outras animações. Outro evento interessante de programarmos é a movimentação do personagem, ou seja, quando o usuário o move de um canto a outro da tela. Vamos fazer com que o personagem reclame por estar sendo carregado. Neste exemplo podemos utilizar o evento Move (Quando a movimentação é completada) ou DragStart (quando a movimentação é iniciada). Vamos usar o DragStart :
Observe o stop no inicio do código : Ele irá parar a animação "Idle3_2" caso o Merlin estivesse em Idle (dormindo). Isso só ocorre porque utilizamos uma animação circular no idlestart. Você poderá observar que o Merlin se posiciona automaticamente no systray. Clicando com o botão direito no Merlin o usuário pode esconde-lo, mas ele permanecerá no systray, podendo ser chamando a qualquer instante. E como o usuário fará para finalizar a aplicação ? Para isso precisamos criar um novo item no menu popup do Merlin (o menu que aparece quando você clica com o botão direito). Todo personagem do Agent possui uma propriedade "Commands", que é uma coleção de objetos "Command", instruções às quais o personagem responde e que irão aparecer no menu popup do personagem. Assim sendo, precisaremos criar um novo command para o Merlin. Veja :
Os parâmetros são, na ordem :
A instrução acima precisará ser adicionada no Form_Load, antes do show. Precisaremos também definir o que acontecerá quando o usuário escolher esta opção no menu popup. Para isso deveremos programar o evento Command. Veja :
Observe que não podemos fazer um Unload neste momento, pois tanto o speak como o play de uma animação não circular são assíncronos, o que faria com que o unload fosse executado rápido demais não deixando a mensagem de despedida ser exibida. Para resolver o problema estamos atribuindo true na variável bSair (eis a utilidade dela, conforme prometi) e verificaremos se ela é true em outro evento. Qual evento ? BaloonHide. Veja :
O evento balloonHide ocorre toda vez que pedimos ao agent para falar alguma coisa (no momento em que o balão é escondido) mas apenas uma vez a variável bSair estará como true. Vamos agora criar um Data Environment na aplicação com uma conexão para uma tabela chamada "CadFunc" que contenha nome, cargo e salário. Vamos criar um Command parametrizado que nos permita pesquisar o nome de um funcionário. O Select no command ficará da seguinte forma :
"parnome" é um parâmetro que estamos criando neste command para realizarmos a filtragem por nome. Como não temos nenhuma referência ao Data Environment em lugar algum da aplicação, deveremos abrir a conexão e fecha-la nós mesmos. Assim sendo, no load do form deveremos colocar o seguinte comando :
e no Unload :
Vamos fazer com que o clique sobre o Merlin nos permita pesquisar por um funcionário. Para isso teremos que programar o evento click do Agent, mas precisamos ter certeza que o botão clicado foi o esquerdo. O evento click recebe vários parâmetros que nos permitem determinarmos isso :
Observe a variável nome, que usuaremos para perguntar o nome do funcinário que o usuário deseja localizar. Este é o próximo passo :
Se o nome for digitado em branco paramos o processamento. Observe que, para termos uma interface agradável, a todo momento fazemos com que o Merlin demonstre o que está ocorrendo com a aplicação. O próximo passo é realizarmos a pesquisa. O command se transformou em um método do dataenvironment, método este que recebe como parâmetro exatamente os parâmetros que criamos na instrução SQL (no caso, parnome). Assim sendo devemo chamar este método para abrir o recordset, que por sua vez é uma propriedade do Data Environment com o mesmo nome do command, acrescida de RS na frente. Se o recordset estiver no EOF após a abertura, o nome não existe. Caso contrário ele foi encontrado.
"Searching" é uma animação em loop. Observe portanto o Stop antes de dar continuidade ao trabalho com o Merlin. Caso encontremos o registro vamos fazer com que o Merlin leia as informações do registro para nós. Veja :
Por fim demos Close no recordset, deixando tudo pronto para uma nova busca. Ao executar observe que o Merlin fala corretamente o salário por extenso. O código fonte da aplicação que criamos encontra-se disponível para download em nossa área de downloads Dennes Torres
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Veja abaixo os comentários já enviados :
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Quer
saber mais?
Faça um curso na Búfalo Informática, Treinamento e Consultoria e Prepare-se para o Mercado! Veja o que a Búfalo tem para você. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
� Búfalo Informática,
Treinamento e Consultoria -
Rua Álvaro Alvim, 37 Sala 920 - Cinelândia - Rio de Janeiro / RJ
Tel.: (21)2262-1368 (21) 9240-5134 (21) 9240-7281 e-Mail: contato@bufaloinfo.com.br