TStringList <> nil ,但访问TStringList.Text出现地址错误,为什么?怎么判断出不能访问TStringList.Text?

解决方案 »

  1.   

    再晕
    先用GetText看看取出来的是不是空。
      

  2.   

    不该出错的,查查代码,应该是TStringList对象.Text
      

  3.   

    str:=TStringList.String[I]
    没要用.text
      

  4.   

    有时候StringList被Free掉后,只要指针没赋值为nil,一样会出现你的情况。
      

  5.   

    对啊,你用这个属性干吗啊?
    添加字符串直接add() or append()方法。为什么要用stringlist.text呢?
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      s:= TStringList.Create;
      //s.Append('a');
      //s.Append('b');
      s.SetText('tt');
      //s.Add('ldskfj');
      if s.GetText <> '' then showmessage(s.GetText) else showmessage('nil');
    end;
      

  6.   

    同意Rail100说得。。我估计你就是没create
    加上s:= TStringList.Create;应该没有错误了。s为你定义的TStringList类型!
      

  7.   

    同意Rail100(每逢佳节倍思春) 的说法
      

  8.   

    Create了吗?
    用Assigned检查,
    Index越界?http://lysoft.7u7.net
      

  9.   

    一个对象<>nil,它未必真的就存在,这实际上可以说是Delphi的一个bug,Delphi在Free一个对象时,它并没有把它置为nil,如果用FreeAndNil就可以解决这个问题.
      

  10.   

    好像只能用
    try ... except 来判断要不, 你每次释放时, 用 FreeAndNil(StringList);
      

  11.   

    没Create,或者什么时候你偷偷Free掉了