怎样在DCOM里写多级对象?(100分)

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

changbin

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样在DCOM里定义多级对象,以便我在客户端可以作类似这样的调用socketconnection1.AppServer.aobj.bobj.aproperty,意思即bobj是aobj的子类,
类似于table1.fields.count的。我在服务端的type library里新增了一个interface,但好像不行,各位大侠可否指点一二?!
 
(socketconnection1.AppServer.newobj as newInteface).aproperty
 
我在服务端通不过,我不知道在服务端怎么建立。第一次程序自动建立的接口例如,例如名为Mydcom,其parent interface为appserver,我在其中新增了一些属性、
方法,然后我想把这些属性、方法归类(还在这个dcom里)成树状结构(例如,我们不希望Ttable的所有属性和方法都杂乱的在同一层,都是table1。a,而希望是table1.a.b的),该怎么办?
我以为应该是通过多个接口实现的,是不是?
 
虽然形式上是table1。a,其实还是多级的
但是我觉得意义不大
 
怎么能说意义不大了,如果你设计一个com,不会属性、方法都是obj.property或obj.method形式
的吧,总希望归类一下,obj.subobj1.method或obj.subobj2.method。如果delphi提供的所有属性
和方法(该有上千个),都写在Tobject下,而没有逐级继承下的类,那我们怎么用啊!
 
小弟是这样做的
添加一个COM OBJECT,然后在原来的接口中加入一个属性,类型就是新建的那个接口
 
to:杨先彬,
能用个小的例子说明吗?
 
你的信箱是多少?我发个例子给你吧
 
zqs10597249@sina.com.cn
谢谢!
 
to:杨先彬
先谢谢你了。你用com做中间层,不是只能本机调用吗?
我想要的是mdias里远程模块的那种
 
我也發一個給你看看
 
to:lqy
Tmainasp = class(TASPObject, Imainasp, subasp)
protected
to:杨先彬
TmObjA = class(TAutoObject, ImObjA)
private
我的是这种
Ttsgglxt = class(TRemoteDataModule, Itsgglxt)
Provider1: TDataSetProvider;
我一直试都不行
请你们到我的帖子好吗?(我也好给你们分呀!哈)
http://www.delphibbs.com/delphibbs/dispq.asp?LID=877552
 
To zqs10597249:
*****************************************************
Ttsgglxt = class(TRemoteDataModule, Itsgglxt)
Provider1: TDataSetProvider;
*****************************************************
由于Provider1 属于 TDataSetProvider 类型,而 TDataSetProvider 类型不是一种接口
所以您定义的基于 TDataSetProvider 的属性在 TYPE LIBRARY 里头是不被支持的。
小弟的建议是:做一个属性(或者FUNCTION),其类型为 OLEVARIANT ,返回的是
Provider1.data 这样不知道能否解决问题?
 
To zqs10597249:
客户端使用 coXXXXX.CreateRemote('服务器名')可以远程访问的。
或者 DCOMCONNECTION 里也可以使用
 
to:杨先彬
你说的 Provider1: TDataSetProvider我实际上都没用到的,我不用TDataSetProvider
很感谢你的热心,谢谢!
 
coXXXXX.CreateRemote('服务器名')可以远程访问的
是不是要把类型库考到客户端?
 
To zqs10597249:
并不需要把 类型库考到客户端 除非你在 DCOM 中使用了 CALLBACK 的技术跟服务器进行
联系。你可以参考李为书上写的那种办法:
var
s:IXXXDisp;
begin
s:=IXXXDisp(IDispatch( DCOMCONNETION.appserver));
end;
 
to:杨先彬
我是初学,不好意思。还是不理解
李的书我又没有,公司又很急,请求帮忙。用个小例子。谢谢了。
我的帖子也是类似这个问题的,你过来吧
http://www.delphibbs.com/delphibbs/dispq.asp?lid=877552
 
to:杨先彬
问题解决,谢谢!
不过象你发给我的程序多个com,那样函数好管理,就是企业逻辑也好封装的
我这样要全部写到TRemoteDataModule里吗?太多函数了。能不能用继承
合作起来才会方便的。
 
To zqs10597249:
我不是很明白你的企业逻辑要做到怎么样,能大体说说吗?
 

Similar threads

后退
顶部