可能概念不是很清楚,大家指正例子:function A: TStrings
var
  b: TStrings;begin
  b := TStringList.Create;
  b.add('trystring');  result := b;
end我的理解时,穿回的是地址。如果是这样,如何将值进行传递呢?

解决方案 »

  1.   

    你的理解没错,因为函数A的返回值是TStrings类型,因此返回的是对象,对象变量的值实际上是一个指针,所以传回的是对象的地址。要将TStrings的值进行传递,那我的理解是你要传递它包含的文本内容,可以这样写:function A: string
    var
      b: TStrings;begin
      b := TStringList.Create;
      b.add('trystring');  result := b.Text;
      b.free;
    end
      

  2.   

    楼上的说的也对,我这样可以不改动函数就能使用
    //delphi代码
    var
      s: TStrings;
    begin
      s:=a;
      showmessage(s.Text);
    end;不知道这样回答你满意吗