接口问题2兼散分
一个COM对象2个接口,借口之间怎么相互调用过程和函数?
FrameSniper(§绕瀑游龙§)
type
Interface1=Interface
{....}
procedure SomeProc1;
end;
Interface2=Interface
{....}
procedure SomeProc2;
end;
TCoClass=class(TComObject,Interface1,Interface2)
public
procedure SomeProc1;
procedure SomeProc2;
end;
....
这种办法需要你在接口2里自定义SomeProc1,而我现在是想在接口2里直接调用接口1的SomeProc1,该怎么办?
问题点数:20、回复次数:12Top
1 楼hotdog911(昱)回复于 2003-12-02 23:42:44 得分 0
不懂,帮你upTop
2 楼qgj99(qgj99)回复于 2003-12-03 07:36:02 得分 0
upTop
3 楼csdnH2O(宇宙锋)回复于 2003-12-03 08:29:58 得分 0
upTop
4 楼tonylk(=www.tonixsoft.com=)回复于 2003-12-03 08:30:49 得分 0
看不懂..
Interface中不能有具体代码的实现,什么叫"在接口2里直接调用接口1的SomeProc1".
如果你是指有一个tcoclass的指针,是用interface1来表示的,希望它能够使用interface2的someproc2方法,那么直接强制类型转换就可以了,但是这样是不安全的.
Top
5 楼Gide(一针见血说实话)回复于 2003-12-03 08:46:23 得分 0
谢谢tonylk(=www.tonixsoft.com=)
我在interface1有SomeProc1,怎么在interface2使用它
如何强制转换?
Top
6 楼qiume(好好回贴,天天胖胖)回复于 2003-12-03 08:56:14 得分 0
type
Interface1=Interface
{....}
procedure SomeProc1;
end;
Interface2=Interface
{....}
procedure SomeProc2;
end;
TCoClass=class(TComObject,Interface1,Interface2)
public
procedure SomeProc1;
procedure SomeProc2;
end;
....
这种办法需要你在接口2里自定义SomeProc1,而我现在是想在接口2里直接调用接口1的SomeProc1,该怎么办?
//////////////////////
严格的说:
你上面的代码完全(几乎完全)符合设计原则,
更何况接口是不负责实现的,你怎么可能去调用呢?Top
7 楼Gide(一针见血说实话)回复于 2003-12-03 09:29:09 得分 0
接口是不负责实现的,知道,但是接口里的procedure负责实现啊,我在同一个对象的另一个接口怎么调用啊?Top
8 楼Gide(一针见血说实话)回复于 2003-12-03 10:17:12 得分 0
郁闷!Top
9 楼Gide(一针见血说实话)回复于 2004-03-03 14:54:53 得分 0
声明:各位看官,由于此帖没人解决,我决定自己收回分数,你们没意见吧?事先通知以免有的人叫嚣封我的id。Top
10 楼lejakwin(大国寡民)回复于 2004-03-03 15:30:39 得分 0
接口只负责描述,如果你要实现接口间方法的互相调用,正如你的实现一样,把他们用统一个类来实现.
接口间的强制类型转换可以直接使用 as 操作符,但是这是使用接口的问题.而不是实现接口的问题. 把一个接口强制类型转换成另一个接口,条件是这两个接口在统一个coclass中实现.
觉得你的代码没问题,可能你没描述好问题吧. 希望说的对你有一点用.Top
11 楼profesional(大熊)回复于 2004-03-03 15:32:57 得分 0
学习!!
我顶!!!Top
12 楼gidee(那份爱)回复于 2004-03-08 20:20:04 得分 20
akwin(大国寡民) 能都给个简单的例子Top




