var
  a: TStrings;a := TStringList.Create;
a.Add(edit1.Text);
memo1.Lines := a;...
a.Free
创建的对象一般都要Free。但是VCL的控件,创建的时候如果设了Owner,那么可以不Free。因为Owner在Free时会自动销毁这些对象的。

解决方案 »

  1.   

    TStrings类是个含有纯虚函数的抽象类,由它来派生出其他子类,如TStringList,因此最后不要直接来用它
    对你的要求,TStringList可以满足要求除非你要使用资源或类,否则连create也可省掉,没有create,那也就不用free来调用destroy了
      

  2.   

    TStrings是一个抽象类,不能创建它的实例,只能创建它的子类的实例(一般用TStringList)
      

  3.   

    var
      sMainList: TStrings;
    begin
      sMainList:=nil;
      try
        sMainList:=TStringList.Create;
        sMainList.Add('sdfsd');
      finally
        sMainList.Free;
      end;
      

  4.   

    TStrings是一个抽象类,不能直接实现抽象类的实例,但可以创建其派生类的实型,如:
      AStringList:=TStringList.Create;
      try
        AStringList.Add('2');
        AStringList.Add('1');
        AStringList.Add('4');  
        AStringList.Add('3');
        AStringList.Sort;
        Memo1.Lines.Assign(AStringList);
      finally
        AStringList.Free;
      end;
      

  5.   

    Tstrings其实是一系列字符串集合,建议使用Tstringlist类,访问时可使用下列方式:
    var
      Test:TStringList;
      i:integer;
    begin
      Test := Tstringlist.create;
      test[i] := ...
    end;