delphi 7.0生成的AgentObjects_TLB.pas出错导至Ms Agent不能发声
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终于可以说话了。
哈哈!!!!
有人需要我可以把AgentObjects_TLB.pas发给他。
- 点赞
- 收藏
- 分享
- 文章举报
- Delphi XLgrid 动态创建下拉框列
- Delphi XE10.3.1 使用心得-2019-12-08
- Delphi10 Android程序 对话框(dialogmessage, showmessage)等的汉化
- TCP中间件_Delphi_client
- DELPHI编模拟鼠标,键盘操作,比键盘鼠标录制软件更强
- glassfish 部署 Delphi for PHP 程序 use_unit 的问题
- delphi安装 Tclientsocket, Tserversocket控件
- Delphi调用分布存储过程
- Delphi7对XML的支持分析
- delphi学习中.
- Delphi之Windows编程
- delphi Memo 的当前行、当前列与当前字符
- Delphi数据库开发之TTable篇1
- Delphi数据库开发之TTable篇2
- Delphi数据库开发之TBDEDataSet.CachedUpdates
- 《Delphi 面向对象编程思想》书评
- 又一灵异事件 Delphi 2007 在 Win7
- delphi stdcall 错误
- Delphi中Inputbox 和Inputquery 函数的使用
- Delphi ClientDataSet 主从结构 BUG