我正在研究MSAgent(微软桌面精灵)技术,一切很好,但就是不会发声。上网查资料说,必须要设定LanguageID,但DELPHI7生成的文件有BUG,需要修改后才能用。有网友留言说在cvs.sourceforge.net找到下载,但我用GOOGLE跑遍了全世界,都没找到,希望哪位兄弟能给我发一份,100分送上!![email protected]  谢谢!!!!!!

解决方案 »

  1.   

    网站建设之delphi 7.0生成的AgentObjects_TLB.pas出错导至Ms Agent不能发声 
     
    上传日期:2005-4-28 
    delphi 7.0生成的AgentObjects_[网站建设]TLB.pas出错导至Ms Agent不能发声笔者是一位delphi初学者,操[网站建设]作系统为winxp,安装开发软件为delphi 7.0企业版。看了在<<开发高手>>第2004年第01期41页的<<[网站建设]汪谈VB在编程中如何实现添加动画小精灵角色>>后,想在delphi上实现上面所讲到的功能。但是遇到了不少问题:1、 在Delphi中添加Agent控[网站建设]件 在Delphi IDE中选择菜单Component,Import A[网站建设]ctiveX Control——在Import ActiveX下的列表框中选择Microsoft Agent Contr[网站建设]ol 2.0(Version 2.0),点击按钮Install——在Install对话框中点击按钮OK—
    [网站建设] 
    —在Confirm对话框中点击按钮Yes——在对话框中点击按钮OK。至此,Agent控件被添加到Delphi组件板
    [网站建设] 
    ActiveX页上。2、 在Delphi中调用Agen[网站建设]t控件 
    [网站建设] 
    在Delphi IDE 中新建Project1(包含Form1),在Form1上放置Agent1(Name属性为Agent1)、Button1。 
    [网站建设] 
    private{ Private declarations }Peedy: I[网站建设]agentCtlCharacterEx;Request1: IagentCtlRequest;网站建设]> 
    procedure TForm1.FormShow(Sender: TObject);begin[网站建设] Request1:=Agent1.Characters.Load('Peedy',CurDir+'\Benoit.acs');Peedy:[网站建设]=Agent1.Characters.Chara[网站建设]cter('Peedy');Agent1.Connected:=True;<[网站建设]br>
    Peedy.MoveTo(300,400,12);end;procedure TForm1.But[网站建设]ton1Click(Sender: TObject);beginPeedy.LanguageID:=$409; //&l[网站建设]t;----出错的就是这一句!!![网站建设] Peedy.Show(0);Peedy.Pla[网站建设]y('LookRight');Peedy.Speak('Hello,wellcome[网站建设] to MS Agent Character world','')end;无论你把Peedy.Languag[网站建设]eID设置成任何值,运行时都会报错!!!后来在CSDN论谈中查找这个问题的解决方案,但是所有的解决方案都没有成功。
    <[网站建设]br> 有人说是把Peedy.LanguageID设置成1033(是$409(十六进制)的十进制表示)有人[网站建设]说试过了还是不行。我试了也不行。直到有一个叫MIKY的谈到读取Character动作列表时修改AgentObjects_TLB.[网站建设]pas后成功。从而受到了启发在goo[网站建设]gle中搜索AgentObjects_TLB.pas结果在cvs.sourceforge.net[网站建设] 中下载了一个AgentObjects_TLB.pas[网站建设]。覆盖到X:\Program Files\Borland\Delphi7\Imports\AgentObjects_TLB.pas.然后再运行上[网站建设]面的代码。成功了!!我的Agent终于可以说话了。
    网站建设]> 哈哈!!!![网站建设] 有人需要我可以把AgentObjects_TLB.pas发给他。
     
      

  2.   

    <转贴>
    delphi 7.0生成的AgentObjects_TLB.pas出错导至Ms Agent不能发声
        笔者是一位delphi初学者,操作系统为winxp,安装开发软件为delphi 7.0企业版。看了在<<开发高手
    >>第2004年第01期41页的<<汪谈VB在编程中如何实现添加动画小精灵角色>>后,想在delphi上实现上面所
    讲到的功能。但是遇到了不少问题:
    1、 在Delphi中添加Agent控件 
    在Delphi IDE中选择菜单Component,Import ActiveX Control——在Import ActiveX下的列表框中选择
    Microsoft Agent Control 2.0(Version 2.0),点击按钮Install——在Install对话框中点击按钮OK—
    —在Confirm对话框中点击按钮Yes——在对话框中点击按钮OK。至此,Agent控件被添加到Delphi组件板
    ActiveX页上。
    2、 在Delphi中调用Agent控件 
    在Delphi IDE 中新建Project1(包含Form1),在Form1上放置Agent1(Name属性为Agent1)、Button1。 
    private
        { Private declarations }
        Peedy: IagentCtlCharacterEx;
        Request1: IagentCtlRequest;
    procedure TForm1.FormShow(Sender: TObject);
    begin
    Request1:=Agent1.Characters.Load('Peedy',CurDir+'\Benoit.acs');
    Peedy:=Agent1.Characters.Character('Peedy');
    Agent1.Connected:=True;
    Peedy.MoveTo(300,400,12);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Peedy.LanguageID:=$409; //<----出错的就是这一句!!!
    Peedy.Show(0);
    Peedy.Play('LookRight');
    Peedy.Speak('Hello,wellcome to MS Agent Character world','')
    end;
    无论你把Peedy.LanguageID设置成任何值,运行时都会报错!!!
    后来在CSDN论谈中查找这个问题的解决方案,但是所有的解决方案都没有成功。
    有人说是把Peedy.LanguageID设置成1033(是$409(十六进制)的十进制表示)
    有人说试过了还是不行。
    我试了也不行。
    直到有一个叫MIKY的谈到读取Character动作列表时修改AgentObjects_TLB.pas后成功。
    从而受到了启发在google中搜索AgentObjects_TLB.pas结果在cvs.sourceforge.net
    中下载了一个AgentObjects_TLB.pas。覆盖到X:\Program Files\Borland\Delphi7\
    Imports\AgentObjects_TLB.pas.
    然后再运行上面的代码。
    成功了!!
    我的Agent终于可以说话了。
      

  3.   

    谢谢zsjzwj(北极熊),原来用百渡直接就可以搜到,还是咱中国人的东西好啊,呵呵
    5分钟结贴!!!