接口定义如下:
  DeliveryCostPlanMgrServicePort = interface(IInvokable)
  ['{92BDF4B9-842E-7FA1-F3BA-8878E0A1AC36}']
    function  findDeliveryCostPlan(const queryCriteriaXDP: WideString; const start: Integer): WideString; stdcall;
  end;
现在我已经有了接口的变量, intfPort:DeliveryCostPlanMgrServicePort, 该变量指向一个实例.
另有一个方法变量FindMethod, 定义如下:
FindMethod:function findDeliveryCostPlan(const queryCriteriaXDP: WideString; const start: Integer): WideString stdcall of Object;
我在现赋值如下:
FindMethod:=intfPort.findDeliveryCostPlan;  //该句不能通过语法检测
请问应怎样赋呢?
谢谢!

解决方案 »

  1.   

    type
      TAA = function (const queryCriteriaXDP: WideString; const start: Integer): WideString of Object; stdcall;
    var
      AA: TAA;
    begin
      AA := intfPort.findDeliveryCostPlan;
      AA('11', 23);
    end;
      

  2.   

    lxpbuaa(桂枝香在故国晚秋):
      你好!
    对于这种方法, 可以把对象的方法赋成功的赋值, 但是对于接口的方法好象是不行的, 不知你试过没有?
    AA := intfPort.findDeliveryCostPlan;//该句通不过
      多谢你的参与!
      

  3.   

    intfPort应该是实现该接口的对象,如果是这样,那么
    AA := intfPort.findDeliveryCostPlan;是能通过的,这个我测试过
      

  4.   

    lxpbuaa(桂枝香在故国晚秋):
       你好!
       你的测试程序是怎样通过的?
       请把你的测试通过的程序发一份到我的邮箱:[email protected]
    谢谢!