Microsoft Agents no Delphi

Usando agentes do Office em uma aplicação VCL

 

Agradeço aos leitores que escreveram comentando o artigo anterior, onde mostramos o uso dos Agents do Office em uma aplicação Web usando o IntraWeb. Atendendo a pedidos de vários leitores, estarei mostrando neste artigo como utilizados os agentes do Office em uma aplicação VCL tradicional. O exemplo será simples: faremos o agente ler todos os Hints que forem configurados na aplicação.

 

Atenção: Para testar o exemplo você precisa ter instalado na sua máquina as bibliotecas do MS Agents, que por padrão já são distribuídas com versões mais recentes do Windows e Office. Mais informações em: www.microsoft.com/msagent

Importando a biblioteca ActiveX

Inicie uma nova aplicação e salve a unit do formulário e o projeto. Clique no menu Component|Import ActiveX Control. Selecione o item Microsoft Agent Control 2.0 (Figura 1) e clique no botão Install.

 

Figura 1. Importando o controle ActiveX

Na janela que aparece mantenha as opções padrão e clique em OK (Figura 2).

 

Figura 2. Instalando o controle ActiveX

Clique em Yes para confirmar a recompilação do dclusr.bpl, que o pacote onde ficará o componente ActiveX importado (Figura 3).

 

Figura 3. Recompilando o pacote dclusr.bpl

Deverá aparecer uma mensagem dizendo que o componente foi registrado com sucesso da IDE. Pressione OK e feche o editor do pacote dclusr.dpk.

Vá até a paleta ActiveX e verifique se componente Agent foi instalado (Figura 4). Esse componente na verdade é apenas um wrapper para a Type Library do controle ActiveX importado anteriormente).

 

Figura 4. Controle ActiveX instalado

Coloque o componente no formulário, e também um Button (paleta Standard) e um ApplicationEvents (paleta Additional). Defina um Hint qualquer para o botão. Seu formulário deve estar semelhante ao da Figura 5.

 

Figura 5. Formulário da aplicação

No evento OnCreate do formulário digite:

 

Agent1.Characters.Load('merlin','merlin.acs');

with Agent1.Characters.Item['merlin'] do

begin

  Show(false);

  MoveTo(200,200,100);

  Play('Announce');

end;

 

No evento OnHint do ApplicationEvents digite:

 

if Application.Hint <> '' then

  Agent1.Characters.Item['merlin'].Speak(Application.Hint,'');

 

Execute a aplicação. Repouse o mouse sobre o botão para testar (Figura 6).

 

Figura 6. “Merlin” lê todos os Hints da aplicação

Super Dica

Além do Merlin, existem dezenas de caracteres adicionais que você pode usar. Esses caracteres ficam instalados por padrão no diretório c:\Windows\MsAgent\char. Além disso, cada caracter pode executar uma variedade enorme de animações, e pode ficar difícil explorar ou descobrir todas as funções de cada um deles. Existe na Web um software chamado MASH - Microsoft Agent Scripting Helper (Figura 7). Apesar de ser bastante poderoso, seu funcionamento é simples: você vai acionando os comandos do agente, visualmente, acionando as animações, posicionamento, e o software vai gerando o script (para JS, VB, HTML), que você pode facilmente adaptar ao Delphi. Você pode fazer download de uma versão trial a partir do endereço: www.bellcraft.com/mash/

 

Figura 7. MASH gera scripts automaticamente para os agentes

Para fazer o download do código-fonte clique aqui

Um abraço a todos e até a próxima!

Sinta-se a vontade para mandar suas dúvidas, críticas e sugestões de artigos.