Использование Microsoft Agent в Delphi.Часть 1 Введение

Получение файла из сети

Использование Microsoft Agent в Delphi.Часть 1 Введение

<!--// BODY -->

Иногда хочется сделать свои приложения более красивыми, интерактивными, т.е. добавить в них дополнительные и необычные возможности. Неужели компания Microsoft не сделала, для разработчиков никаких подобных средств? Сделала и очень даже неплохое, называется эта технология Microsoft Agent. Microsoft Agent - сервис, который позволяет использовать интерактивных анимированных персонажей для улучшения интерфейса ваших приложений. Разработчики могут использовать эти персонажи как интерактивных помощников в своих программах, примером такого персонажа является всем известная скрепка в пакете Microsoft Office. Агенты могут также внедряться в ваши Веб страницы.
И естественно было бы совсем неправильно, если бы такое хорошее средство обошло стороной программистов использующих Delphi. Но благодаря тому, что в Delphi имеется прекрасные возможности работы с COM технологиями, использование агентов в Delphi превращается в приятное развлечение.
Для начала работы с агентами, вам естественно нужно установить MS Agent (Microsoft Agent входит в состав операционной системы WINDOWS 2000), скачать его можно отсюда
 

MsAgent (395 кб)

также для работы понадобится какой-нибудь характер (Microsoft свободно распространяет 4), их вы можете найти, тут же (а также и другие расширения MsAgent):


Скачать jenni.acs (3,9Мб)
http://msdn.microsoft.com/workshop/imedia/agent/agentdl.asp

или

http://agentry.net
http://www.rohitab.com/freevoice/gallery.html
http://www.msagentring.org
 

отличные агенты на

http://desktopmates.com/gallery.html

но это за деньги, у меня есть полная версия jenni (демонстрационная версия с урезанными анимациями доступна на сайте), которая на картинке , мне прислал один хороший человек из за бугра. И если кто то видел где то других агентов этой фирмы (свободных для скачивания) или купил их, просьба выслать мне или сообщить, где можно их взять.

 

Неплохие агенты находятся на корейском сайте

http://www.staravatar.co.kr/member/index.asp

Но будем считать , что вы сделали все действия и успешно установили MSAgent у себя в системе , что же нужно сделать , чтобы использовать его в Delphi.Все очень просто, нужно просто импортировать библиотеку типов tlb. Эту операцию опишу поподробней.

Запускаете Delphi, в меню выбираете в меню:

Component->Import ActiveX Control.
 

Дальше выбираете из списка Microsoft Agent Control 2.0 и нажимаете Install. Потом выберите переключатель в новый пакет, введи названия пакета(MsAgent.dpk) и название палитры(это как угодно, у меня стоит в палитре ActiveX), описания пакета если нужно и жмете ОК.
Все значок агента, должен появиться у Вас в палитре.

Теперь кидайте компонент на форму и можете уже писать приложения с использованием агентов.

А вот и пример, создайте новый проект, киньте компонент агента, вставьте приведенный ниже код и наслаждайтесь как ваш агент бегает по экрану.

  unit Unit1;
  interface
  uses
    Windows, Messages, SysUtils, Classes, Graphics, Forms,
	AgentObjects_TLB, Controls, OleCtrls ;
  type
    TForm1 = class(TForm)
     Agent1: TAgent;
     procedure FormCreate(Sender: TObject);
     private
     { Private declarations }
     procedure WaitFor(Request:IAgentCtlRequest);
     public
     { Public declarations }
     end;
  var
    Form1: TForm1;

  implementation
  {$R *.DFM}
  var
    Character:IAgentCtlCharacter;
    Request: IAgentCtlRequest;
  Const
    AGENT ='nn';
    AGENTPATH = 'D:\Chars\nn.acs'; // здесь нужно прописать путь где находится ваш агент

  procedure TForm1.WaitFor(Request:IAgentCtlRequest);
  var
    Status:LongInt;
  begin
    repeat
      Application.ProcessMessages;
      Status := Request.Get_Status;
    until (Status <> 2) and (Status <> 4);
  end;

  procedure TForm1.FormCreate(Sender: TObject);
  begin
    Agent1.Connected:=true;
    Request:=Agent1.Characters.Load(Agent,AgentPath);
    Character:=Agent1.Characters.Character(Agent);
    Request := Character.MoveTo(640,365, 0);
    Request := Character.Show(False); 
    WaitFor(Request);
    Request := Character.Speak('Привет',EmptyParam);
    Request := Character.Play('Greet');
    Request := Character.MoveTo(0,365, 1500);
    Request := Character.Play('Announce');
    Request := Character.MoveTo(0,0, 1500);
    Request := Character.Play('Suggest');
    Request := Character.MoveTo(300,300, 1500);
    Request := Character.MoveTo(100,300, 1500);
    Request := Character.GestureAt(800,300);
    end;
  end.


 

Каждый агент имеет определенное количество поддерживаемых анимаций, их вы можете узнать или на сайте разработчика, или в документации к агенту. Также ваши агенты могут разговаривать с Вами, если вы установите соответствующие компоненты. Анимации используемые в примере поддерживаются как правило всеми агентами, если у вас возникнут проблемы с выполнением данного кода, просто удалите строчку, на которую ругается компилятор.

На этом я заканчиваю ознакомительную часть по работе с агентами в Delphi, в следующих частях я расскажу по подробнее о том что делает приведенный здесь пример и естественно расширю его функциональность, мы рассмотрим свойства, методы, события, ошибки анимации. Нетерпеливых сразу отошлю к MSDN, где подробно описаны возможности использования технологии MSAgent.

Если вы тоже, как и я стали фанатом MSAgent, вы можете подписаться на эхо-конференции посвященные этой технологии

spacemans.ne.mediaone.net microsoft.agent.fun

msnews.microsoft.com microsoft.public.msagent

Кроме того вы можете сами стать разработчиком персонажей для MSAgent, подробности найдете все на том же сайте Microsoft.

Если вы до конца прочитали эту статью, то добро пожаловать в мир агентов.



Опубликовал admin
3 Авг, Воскресенье 2003г.



Программирование для чайников.