这个问题也值90'?
//faint。
当然可以,不过必须注意内存泄漏的问题!注意把返回的那个变量Free。

解决方案 »

  1.   

    TstringList:做返回之可以,但要注意stringlist的释放。用船只参数照样可以访问tstringlist;操作完后,你可以处理过程理处理的问题。
    stringlist的释放再过程外处理。这样更安全,更符合常规的指针操作。  procedure GetastringList(var qList: TStringList);
      begin
        qList.Assign(ComboBox1.Items);
        //可以是其他的操作
      end;
    调用:
    var
      aList: TStringList;
    begin  aList := TStringList.Create;
      GetastringList(aList);//处理stringlist
      showmessage(aList[0]);
      aList.Free;
      

  2.   

    大家看看我的代码为什么错?
    function GetStr:TStringList;
    var
      a:TStringList;
    begin
      a :=TStringList.Create;
      a.Add('dddddd');
      Result:=a;
      A.Free;
    end;
      

  3.   

    哎,问题是在你的过程的内部就已经Free了,对象当然不存在了!
    function GetStr:TStringList;
    var
      a:TStringList;
    begin
      a :=TStringList.Create;
      a.Add('dddddd');
      Result:=a;
    //  A.Free;
    end; 调用:
      ar:=Getstr;
      ....
      ar.free;
      

  4.   

    设一个全局变量,close时再free掉
      

  5.   

    to Kingron(winApi):
    谢谢你,我通过了,按你说的,呵呵。
    祝好运!