请教一个COM的问题,多谢各位大虾帮忙!!! (100分)

  • 主题发起人 主题发起人 赵文卓
  • 开始时间 开始时间

赵文卓

Unregistered / Unconfirmed
GUEST, unregistred user!
[:D]用DELPHI的COM OBJECT WIZARD创建一个COM:Highway后,在其接口上定义了一个
只读的属性比如:Speed;结果发现在dephi自动生成的代码中只在Protected部分生成
了Get_Speed方法,在Pubic和Publish部分没有定义Property Speed。
既然没有在public和publish部分定义任何东西,那么我要是用这个COM的时候如何引用
Speed这个属性呢??而且Get_Speed方法是受保护的,显然也没有办法引用!很奇怪,
有人知道是什么原因么??应该怎么办??多谢!!
代码:
 
[:(!]我很着急,请各位大虾多多费心!
 
比如你已经已经创建接口对象变量为A,
则可以直接用A.Speed =
 
你编写一个程序试试不就行了?可以读写的。
 
你可以在自动生成的.tlb文件中修改,找到你的接口定义部分,加上一句:
property speed: Integer read Get_speed;就可以了,不要在COM组件的实现
部分去加。这样在调用的时候就可以用tmp:=HighWayInstance.speed来访问
你的speed了。我是在写一个Automation Object时这么做的。查了一下资料,
好像是说COM接口不能有属性,只有方法,对于属性只能通过方法来访问,当然
你还是可以按照推荐的做法,通过调用get_speed来访问speed属性:
tmp:=HighWayInstance.get_speed;
 
多谢其实vc里面是可以用属性那么delphi凭什么不能用!
 
后退
顶部