我添加一个方法时都是
procedure 而不是function所以都不能返回

解决方案 »

  1.   

    添加一个参数,类别,有in,out,retval,设置成为retval.
      

  2.   

    添加保存不了,提示:Out parameter requires pointer type
      

  3.   

    接口定义时,使用如下定义语句,delphi会自动生成一个接口函数形式,
    function dd(var output:variant):variant;然后你需要做的就是在function中将要返回的字符串数据都转为variant形式
    下面是我最近做的一个ocx的接口的完整形式,你可以参考一下, 注意其中tmp变量的使用
    //**:***************************************************************************
    //**:功能:读指定磁道数据
    //**:参数:magic 0:读所有磁道,1,2,3分别读对应磁道数据
    //**:***************************************************************************
    function TBC.getMagicInfo(magic: Integer; var magicInfo: OleVariant): Integer;
    var
      tmp:string;
      i,j,ln:integer;
    begin
      if BCReader=nil then
      begin
        result := -1103;
        exit;
      end;
      result := BCReader.getMagicInfo(magic,tmp);
      ln := length(tmp);
      //创建返回的OleVariant时,下标必须是从0开始的
      magicInfo := VarArrayCreate([0,ln-1],VarByte);
      for i:=1 to ln do
      begin
        j := ord(tmp[i]);
        magicInfo[i-1] := j;
      end;
    end;
      

  4.   

    调用接口时,也时使用variant数据类型接收,然后转换就可以了