МОУ СОШ №3 г. Осташков Тверская обл.
  
 
 
 
 

Мини-проекты в Delphi

Использование Microsoft Agent в Delphi.

Иногда хочется сделать свои приложения более красивыми, интерактивными, т.е. добавить в них дополнительные и необычные возможности. Microsoft Agent - сервис, который позволяет использовать интерактивных анимированных персонажей для улучшения интерфейса ваших приложений. Разработчики могут использовать эти персонажи как интерактивных помощников в своих программах, примером такого персонажа является всем известная скрепка в пакете Microsoft Office. Для начала работы с агентами, вам естественно нужно установить MS Agent (если он не установлен).
Для этого запускаете Delphi, выбираете в меню:
Component->Import ActiveX Control.
 Дальше выбираете из списка Microsoft Agent Control 2.0 и нажимаете Install. Потом выберите переключатель в новый пакет, введи названия пакета(MsAgent.dpk) и название палитры (это как угодно, обычно ActiveX), описания пакета, если нужно и жмете ОК. Все, значок агента, должен появиться у Вас в палитре.

Напишем программу, с помощью которой, можно познакомиться с тем, что может выполнять агент.
Для этого разместим на форме объект Agent из вкладки ActiveX и ListBox для списка анимаций. Сохраним будущий проект в папке «Агент». В нее скопируем нужный нам персонаж. Можно использовать имеющиеся в составе Office. В разделе private объявим переменные:
Req: IAgentCtlRequest;{Будет хранить текущее действие персонажа}
Chars: IAgentCtlCharacterEx;{Хранит сам персонаж для обращения к нему}
FPath: string; {Путь к ехе – файлу}
При загрузке формы определяем путь к ехе – файлу (персонажу), загружаем его и создаем список анимаций.

procedure TForm1.FormCreate(Sender: TObject);
begin
FPath := ExtractFilePath(Application.ExeName);
Agent1.Characters.Load('MyAgent', FPath+'merlin.acs');
Chars:= Agent1.Characters.Character('MyAgent') as IAgentCtlCharacterEx;
ShowAgentAnim; //Создаем список анимаций
Req:=Chars.Show(0);
end;

merlin.acs – это выбранный в данном примере персонаж, его имя можно заменить на другое.
Объявим процедуру, которая будет показывать анимации
procedure ShowAgentAnim; и напишем ее текст:

procedure TForm1.ShowAgentAnim;
   var
       AEnum: IEnumVariant;
       flag: Cardinal;
       V: OleVariant;
begin
   with Form1 do
      begin
         AEnum:=(Chars.AnimationNames.Enum) as IEnumVariant;
         {Получаем интерфейс анимаций агента}
          AEnum.Reset; //Сбрасываем список на первую  анимацию
          ListBox1.Items.Clear;
          repeat
             AEnum.Next(1, V, flag);
             if VarToStr(V) <> ''  Then
                 ListBox1.Items.Add(V);
          until flag=0;
       {Флажок будет равен 0, когда мы узнали имя  последней анимации}
      end;
end; 

Эта процедура выведет список всех имеющихся анимаций для данного персонажа.
При клике мышкой в списке должна вызываться соответствующая анимация. Для этого создаем процедуру

procedure TForm1.ListBox1Click(Sender: TObject);
begin
    Chars.Stop(Req);
    Req:=Chars.Play(ListBox1.Items.Strings[ListBox1.ItemIndex]);
    Req:=Chars.Speak(ListBox1.Items.Strings[ListBox1.ItemIndex],'')
end;


Play - демонстрирует анимацию, Speak – озвучивает (если установлена соответствующая программа).
И последнее. При закрытии программы нужно выгрузить персонаж.

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Agent1.Characters.Unload('MyAgent');
end;

С помощью этой простой программы можно выбрать нужные анимации для использования в своих разработках.
Большое количество персонажей можно найти на сайте
http://characters.narod.ru

 

 

 

 

 

 

 

 

 

 


 
О мини-проектах
Неуловимая кнопка
Вещий камень
Перетаскивание фигур
Секундомер
Градусы-радианы
Мультик
Падение тела
Прозрачная форма
Регионы
Шарик за мышкой
Таймер
Расписание уроков
Записная книжка
Задача по физике
Определение зачеркнутой цифры
Использование Microsoft Agent в Delphi
 Арифметика
 
 
 
 
 
 
 
 
 
 
 
 
 
 
             
Hosted by uCoz