一个奇怪的问题(Com事件)急,在线等待(50分)

  • 主题发起人 主题发起人 cb422
  • 开始时间 开始时间
C

cb422

Unregistered / Unconfirmed
GUEST, unregistred user!
我在编写Com事件时给IEventIntf添加了SendText方法,给IEventIntfEvents添加了一个
名为OnText的事件。然后运行此服务器注册它。
我在创建客户程序时先Import Type Library,Install这个控件,然后将此控件丢到主
窗体上,如果不保存项目,程序可以正常运行。但是,如果保存了项目之后,程序不能编译
通过,提示Undeclared SendText。我不知道是什么原因,还有就是该控件的类型为TEventIntf
我在它的声明文件中看到SendText为protected类型,按道理来说,是不能在客户端调用该
函数的。(这个例子是Delphi COM深入编程中的,我觉得这本书有很多错误)
 
这例子以前我看过,应该可以的吧!重新做一遍呢。
 
to cb422:
你所说的例子,我碰到过,因为我读过这本书。但没有出现你说的情况。
“提示Undeclared SendText”,我想可能是你不小心将 XXX_TLB.pas删除了,
保存以后,你看看 USES 下有没有该类型库导入文件。
既然你的程序能运行,就不存在你的COM服务器没有实现SendText方法。
对于第二个问题,我想你可能还没有搞清楚接口这种东西,在COM编程里,所有的功能
是通过接口输出的。功能函数定义在接口中,接口必须由一个特殊的类去实现,
而且该类要实现接口中的方法。COM规定:该类的实例创建后,接口也就创建了。由于这些方法是申明
在接口中的,只是由类去实现而以。它可没有使用约束。所以接口是可以调用它的。
你要知道,你的 COM对象在应用运行后,自动创建并返回了一个Ixxx的接口。而不是对象实例,
如果是对象实例,我想应该是不能使用protected中的方法的。
这就是 COM对象的不同之处。Are you see? 如果我的贴对你有帮助,要记得给分噢。
 
非常感谢pcc_mmz1,我一定会给分的。你能帮我看看这个问题吗?也是那本书上的
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1263358
 
在定义接口的时候,多加注意。
 
to cb422;
你最近的两个问题,我看大伙回答的还不错,
该结贴了!不然许多弟兄有意见了。
 
多人接受答案了。
 
后退
顶部