delphi 7.0生成的AgentObjects_TLB.pas出错导至Ms Agent不能发声

王朝delphi·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

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\Delphi7Imports\AgentObjects_TLB.pas.

然后再运行上面的代码。

成功了!!

我的Agent终于可以说话了。

哈哈!!!!

有人需要我可以把AgentObjects_TLB.pas发给他。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航