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.