Вивчаємо MS Agent Control, Різне, Програмування, статті

Продовжимо розмови з приводу MS Agent. Завантажувати персонаж ми навчилися, а що робити з ним далі? Він, звичайно, може висіти без справи як додаткове прикрашення робочого столу, але краще використовуємо технологію на повну котушку. Розглянемо простий приклад роботи з MS Agent Control з використанням встановленого нами ActiveX компонента.


Запускаємо Delphi, створюємо новий проект, і укладаємо на головну форму компонент agent_pictogrammTAgent з закладки палітри компонентів ActiveX .


Тепер на подію onCreate у головної форми пишемо наступний код:






1
2
3
4
5
6
procedure TForm1.FormCreate(Sender: TObject);
begin
Agent1.Characters.Load(“MyAgent”,”merlin.acs”) ;
Agent1.Characters.Character(“MyAgent”).Show(0);
Agent1.Characters.Character(“MyAgent”).Speak(Agent1.Characters.Character(“MyAgent”).Description, “”)
end;

Написали? Тепер запускаємо програму і бачимо приблизно наступне:


agent_speak


Думаю, що докладно описувати процедуру не варто, в Кратц скажу, що ми зараз завантажили персонаж, показали його користувачеві і при цьому Мерлін прочитав те, що записано в його описі.


Тепер подивимося, на що в принципі здатний помічник при його використанні в програмах. Розглянемо більш докладно події у комонента TAgent:



  1. onActivateInput – Відбувається, коли персонаж стає активним для введення, наприклад, коли персонаж отримує клацання мишею, користувач називає ім’я персонажа, при приховуванні персонажа іншої програми і т.д.

  2. onDeactivateInput – Відповідно, відбувається, коли персонаж деактивується для введення, наприклад, якщо методом Show викликається інший персонаж

  3. onClick – Проиходит при клацанні мишею по персонажу. При цьому, якщо персонаж був деактивовано, то спочатку спрацьовує подія onActivateInput, А потім onClick.

  4. onDragStart – Викликається, коли користувач починає перетягувати персонаж мишею

  5. onDragComplete – Запускається, коли користувач відпускає кнопку миші після перетягування персонажа

  6. onRequestStart – Надсилається сервером, коли він починає обробляти запит, поставлений в чергу.

Є ще маса інших подій, що обробляються в процесі роботи з персонажами, але ми, для ознайомлення зупинимося поки на розглянутих вище. А тепер розглянемо невеликий приклад:


нехай при запуску програми персонаж скаже хто він і відреагує на перетягування його мишею


Код, який реалізує поставлену задачу представлений нижче:






1
2
3
4
5
6
7
8
9
10
11
12
procedure TForm1.Agent1DragStart(ASender: TObject;
const CharacterID: WideString; Button, Shift, x, y: SmallInt);
begin Agent1.Characters.Character (“MyAgent”). Speak (“ееее … постав на місце!”, “”)
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
Agent1.Characters.Load(“MyAgent”,”merlin.acs”) ;
Agent1.Characters.Character(“MyAgent”).Show(0);
Agent1.Characters.Character(“MyAgent”).Speak(Agent1.Characters.Character(“MyAgent”).Description, “”)
end;

Тепер відкомпілюйте, запустіть програму та спробуйте перетягнути персонаж в момент, коли він “представляється” Вам. Бачите? Ніби як подія onDragStart повинно працювати і персонаж повинен вигукнути іншу фразу, але він продовжує розпочату фразу. Очевидно, що перший запит необхідно якось перервати. Хочете дізнатися як? У наступній статті я розгляну питання по роботі із запитами Request.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*