var sl:tstringlist;
    a:tmemorystream;
begin
   sl:=tstringlist.Create ;
    sl.Add(edit1.Text);
    a:=tmemorystream.Create;
    sl.SaveToStream(a);
    sl.Clear;
    sl.LoadFromStream(a);
    listbox1.Items.Assign(sl);
end;
上面是我写的简单测试程序,请问未何重新LOADSTREAM不能显示流的字符串啊?
怎么解决最好!

解决方案 »

  1.   

    listbox.items的数据类型为Tstrings
    将s1的类型改成tstrings
    var sl:tstrings;
        a:tmemorystream;
    begin
       sl:=tstrings.Create ;
        sl.Add(edit1.Text);
        a:=tmemorystream.Create;
        sl.SaveToStream(a);
        sl.Clear;
        sl.LoadFromStream(a);
        listbox1.Items.Assign(sl);
      

  2.   

    在    sl.SaveToStream(a);
          sl.Clear; 後加入:
        a.Position := 0;
    將流位置重新定位到首位!!
      

  3.   

    下面的肯定行的:var sl:tstringlist;
        a:tmemorystream;
    begin
      sl:=tstringlist.Create ;
      sl.Add(edit1.Text);
      a:=tmemorystream.Create;
      sl.SaveToStream(a);
      sl.Clear;
      a.Position:=0;  //关键
      sl.LoadFromStream(a);
      listbox1.Items:=sl;
      sl.Free;
      a.Free;
    end;