关于客户端调用服务器接口的问题(30分)

  • 主题发起人 主题发起人 royhgf
  • 开始时间 开始时间
R

royhgf

Unregistered / Unconfirmed
GUEST, unregistred user!
请问,在三层结构中,为什么我定义远程数据模块的接口方法后,在客户端调用时没有显示这个接口的方法的呢.SocketConnectionZfg.AppServer. 后面就没有显示方法啦?要怎么个做法啊.
 
这个在客户端是没法显示的,除非你把你服务器端的单元也引用过来,但没这个必要
你就手工指定好了
 
呵呵,這個是沒法顯示的,你只是照著服務器端的接口寫上去,不會報錯的。不過參數一定要正確。還有就是服務器端接口方法一定不能有錯,因為這個也不好測試!
 
自己写个方法和服务段方法名相同,不就行了
 
你的客户端Project中要 uses 中间层模块Project生成的*_TLB.pas文件,其中包含了你的组件类接口的定义,假设为:IMyRemoteDataModule = interface(IAppServer)。
客户端调用时,可以这样:IMyRemoteDataModule(SocketConnection1.GetServer).,这样就可以自动显出你在IMyRemoteDataModule接口中自定义的属性和方法了。
如果这样:
var
AppObj: Variant;
begin
AppObj := SocketConnection1.AppServer;
AppObj. //这种方式就不能自动显出你自定义的属性和方法
end;

Delphi向导生成的远程数据模块组件,都是支持双接口的,即在定义了IMyRemoteDataModule接口之外,会自动定义一个IMyRemoteDataModuleDisp接口。后者支持方法的动态绑定(晚绑定),可支持VB等脚本语言的调用,灵活性高,但执行速度慢,编辑时不支持代码自动完成;前者是编译时绑定,执行速度快,编辑时支持代码自动完成。
 
接受答案了.
 
后退
顶部