# Native Code > برنامه نویسی در Delphi >  MsAgent

## me_saem

سلام
من در برنامه ام از msagent  استفاده کرده ام و میخواهم با توجه به نظر کاربر ظاهر شود یا نشود.
برای ظاهر شدن از دستورات زیر استفاده کرده ام :

      begin
      RobotAgent &#58;= TAgent.Create&#40;Application&#41;;
      RobotAgent.Characters.Load&#40;'Merlin','Merlin.ac  s'&#41;;
      with RobotAgent.Characters.Item&#91;'Merlin'&#93; do begin
        play&#40;'show'&#41;;
      end;
و برای مخفی شدن از دستورات زیر :

      with RobotAgent.Characters.Item&#91;'Merlin'&#93; do begin
        play&#40;'hide'&#41;;
        RobotAgent.Characters.Unload&#40;'Merlin'&#41;;
      end;
اما بعد از اینکه مخفی شد دیگر ظاهر نمیشود !
یکی به من بگه باید چیکار کنم.

----------


## vcldeveloper

من از این دو دستور استفاده می کنم:

Agent.Characters.Item&#91;'Merlin'&#93;.Show&#40;1  &#41;




Agent.Characters.Item&#91;'Merlin'&#93;.Hide&#40;1  &#41;



حالا بعد از مخفی شدنش شما به چه صورتی می خواید که دوباره ظاهر یشه؟ اگه از طریق کد می خواید این کار رو بکنید که همون show(1) همش جواب میده
اگر نه....پس می تونید از آیکون agent مورد نظر در System tray استفاده کنید. موقع ظاهر شدن agent یک آیکن هم اونجا درست میشه که اگر agent مخفی باشه با راست-کلیک روی اون ایکن و انتخاب Show کارکتر مورد نظر دوبارخ ظاهر میشه.

----------


## me_saem

من این دستور رو اجرا میکنم اما خطا میده !

من میخوام با زدن یک دکمه کلا از حافظه بره و یا حداقل مخفی بشه و دیگه تا دستور show  ظاهر نشه.
من از دستور unload استفاده کردم ولی موقعی که میخوام دوباره بیاد خطا میده.

----------


## vcldeveloper

میشه یکم بیشتر توضیح بدید که اولا چطوری کاراکتر رو لود میکنید و ثانیا در هنگام unload کردن دقیقا چطور کاراکتر رو unload می کنید؟ شاید در استفاده از دستورات اشتباهاتی می کنید!
در ضمن اگه میشه پیغامهای خطا رو هم بنویسید.

----------


## A.VAHID

با سلام
ببخشید بچه ها من نمیدانم MsAgent چیست و چه کاربردی دارد 
اگر ممکن است برای من توضیح دهید
متشکرم
ع.و

----------


## vcldeveloper

MSAgent یه چیزیه مثل همون Office Assistant (همون گیره کاغذی که تو برنامه های آفیس هر وقت مشکل داشتی ظاهر میشه)

----------


## A.VAHID

از پاسخ سریعت متشکرم
ع.و

----------


## _alish_

من متن جایی که آنرا خوانده ام کاملا آرده ام شاید بدردتان بخورد
این متن توسط صادق علوی زاده  است و من فقط آنرا ک÷ی کردم بدونه کم و کاست




> Microsoft Agent یکی از سرگرم کننده ترین فن آوریهای Microsoft می باشد که تا کنون توانسته بسیار مورد علاقه کاربران قرار بگیرد. Agentها به برنامه های شما جذابیت زیادی می دهند و امکان ارتباط بهتر و جالبتری را با کاربر ایجاد میکنند. در اینجا من می خواهم شما را با Microsoft Agent و طریقه بکار گیری آن در برنامه های خودتان را آموزش بدهم که امیدوارم مفید باشد. از آنجایی که من این امکان را در دلفی استفاده کرده ام برای شما هم مثالهای دلفی آورده ام ...
> 
> اولین باری که از این تکنولوژی استفاده شد در برنامه Office 97 بود که خیلی مورد علاقه کاربران قرار گرفت. من اون موقع خیلی گشتم تا بتونم از این امکان استفاده کنم ولی خوب نتونستم ): اما بعد ها با پیشرفت کردن علم برنامه نویسی و همچنین با پیشرفت کردن عقل Microsoft (که از نظر من بزرگترین کلاه بردار قرن هست) این تکنولوژی در اختیار دیگران هم قرار گرفت... برای همین در اوایل فقط در Office بود که از این امکان استفاده می شد. 
> 
> حالا اینا رو گفتم اما ببینیم اصلاً Agent چی هست؟؟!!!
> 
> شما اگه از Office استفاده میکنید حالا هر کدوم از برنامه هاش که باشه (Word,Excel,FrontPage,...) یک شکلکی رو میبینید که همیشه نسبت به کارهایی که انجام میدین یک سری حرکات از خودش نشون میده که هم سرگرم کننده هست هم آموزنده. حالا حتماً متوجه شدین که در مورد چی صحبت میکنیم (هر چند که میدونم میدونستید (; ) خوب حالا می خواهیم ببینیم که چطور میشه از این امکان تو برنامه های خودمون استفاده کنیم مثلاً وقتی برنامه داره کار میکنه یه شکلکی بیاد برای کاربر ادا در بیاره تا طرف نفهمه که برنامه چیکار میکنه (: یا مثلا موقع ذخیره کردن و بازیابی کردن و یا جستجو و ... یک سری حرکات مربوط به آن عمل انجام بده...
> 
> اینکار خیلی ساده است و فقط کافی هست شما یک Agent رو انتخاب کنید و در برنامتون تعریفش کنید و بعد هر کاری که خواستین رو بهش دستور بدین تا براتون انجام بده . ضمنا شما لازم نیست اصلاً غصه درست کار کردن اون رو بخورین چون خود Windows اونو کنترل میکنه که یه وقت کار بدی نکنه ((: 
> ...

----------


## vcldeveloper

این مطلب فبلا در سایت IranDevelopers اومده بود!

----------


## me_saem

من دستورات load و  unload رو اون بالا نوشتم و از همون دستورات استفاده کردم.

----------


## vcldeveloper

ببینید من وقتی کد شما رو بصورت زیر تغییر میدم روی سیستم من برنامه بدرستی کار میکنه!


procedure TForm1.Button1Click&#40;Sender&#58; TObject&#41;;
begin
  RobotAgent &#58;= TAgent.Create&#40;self&#41;;
  RobotAgent.Characters.Load&#40;'Merlin','Merlin.ac  s'&#41;;
  with RobotAgent.Characters.Item&#91;'Merlin'&#93; do
  begin
// play&#40;'show'&#41; doesn't work! I don't  exactly know why!!! But it just shows
// the charecter's icon in system tray.

// Show&#40;0&#41; works correctly, you can set the argumentr to 1 to change the
// way charecter appears
    show&#40;0&#41;;
    Speak&#40;'Hi',''&#41;;
  end;
end;



procedure TForm1.Button2Click&#40;Sender&#58; TObject&#41;;
begin
  if RobotAgent &lt;> nil then
    with RobotAgent.Characters.Item&#91;'Merlin'&#93; do
    begin
      play&#40;'hide'&#41;;
      RobotAgent.Characters.Unload&#40;'Merlin'&#41;;
    end;
end;

----------


## me_saem

سلام

این درست. اما شما میتونید پشت سر هم این دو تا رو اجرا کنید.
یعنی چند بار  پشت سر هم load , unload  کنید.
یا به عبارت دیگر بعد از unload دوباره load  میشه یا نه؟

----------


## nasr

از اینجا می تونید Agent 2.0 Tool: Agent Character Editor (ACE)  را دانلود کنید

http://www.microsoft.com/downloads/d...displaylang=en

----------


## nasr

> این درست. اما شما میتونید پشت سر هم این دو تا رو اجرا کنید. 
> یعنی چند بار پشت سر هم load , unload کنید.


من این کار را انجام دادم مشکلی نداشت

----------


## nasr

از اینجا هم می تونید Agent دانلود کنید 
http://www.download.dk/index.asp?Kat...=news&prog=616

----------


## مهندس

آقا فایل قابل دریافت نمیباشد...

File Request Does Not Exist

----------


## مهندس

آقا فایل از سایت مزبور قابل دانلود نمیباشد...

File Request Does Not Exist
اگر میشه به ایمیل ما بفرستید.

darvishvand@yahoo.com

----------


## nasr

من از همینجا هر دو مورد را دانلود کردم مشکلی نبود
به هر حال براتون میلش میکنم

----------


## me_saem

ممنونم. امتحانش میکنم.

----------


## nasr

سلام
اول اینکه آیا میشه لهجه Agent  را عوض کرد چون این Merlin خیلی بد حرف میزنه :P  (فکر کنم باید از Agent های دیگه استفاده کنم)
دوم اینکه می شه کاری کردن که قیافه Agent نشون داده نشه و فقط صدای اون پخش بشه 
سوم اینکه آیا میشه اون کادر زرد رنگ که بالای سرش باز میشه دیگه باز نشه 
چهارم اینکه آیا میشه رنگ اون کادر زرد رنگ را عوض کرد

فعلا اولویت در دومی است بقیه زیاد مهم نیست ولی اگه همه را هم بگید بد نیست 

ممنون

----------


## vcldeveloper

> اول اینکه آیا میشه لهجه Agent را عوض کرد چون این Merlin خیلی بد حرف میزنه  (فکر کنم باید از Agent های دیگه استفاده کنم)


بله میشه ولی باید فایهای مربوط به اون اهجه رو نصب کنید (نمیدونم اینا رو از کجا میشه پیدا کرد!)‌ من قبلا روی سیستمم 16 صدای مختلف با دو لهجه british و American بود، اما نمی دونم کدومیک از برنامه ها اونا رو نصب کرده بود :roll: 



> دوم اینکه می شه کاری کردن که قیافه Agent نشون داده نشه و فقط صدای اون پخش بشه


برای اینکار میتونید از MS TextToSpeech استفاده کنید و دیگه نیازی هم به Agent نخواهد بود (مثل برنامه Babylon)



> سوم اینکه آیا میشه اون کادر زرد رنگ که بالای سرش باز میشه دیگه باز نشه


آره میشه، یکی از متدهای Agent این کار رو میکنه، اما یادم نیست اسمش چی بود، شرمنده!



> چهارم اینکه آیا میشه رنگ اون کادر زرد رنگ را عوض کرد


اینو نمیدونم :(

----------


## MiRHaDi

سلام
آقای نصر این برنامه که شما لینک دادید یک برنامه به نام Agent هست !‌ ولی برای Mail دادن و گرفتن !‌چیزی شبیه به OutLook و هیچ ربطی به این کار البته به سواد من نداره !‌میشه توضیح بدید ؟
بای

----------


## MiRHaDi

سلام
یه سوال !
فرق Item&#91;'Agent_name'&#93; با Character&#40;'AgentName'&#41; چیه ؟
من که هیچ فرقی نمیبینم
بای

----------


## shahgol80

دوستان گرامی شما می دونید چه جوری میشه متن داخل بالون ایجنت رو راست چین کرد و فونتش رو تغییر داد ؟

----------

