本帖最后由 d11fans 于 2009-10-02 10:28:26 编辑

解决方案 »

  1.   

    Move(source, dest, count)
    这里的count应该是剩余的元素个数。另外,代码逻辑上是有错误的...你想想看如果第i个元素需要删除,你把之后的元素全部挪过来之后,那第i+1个就被跳过了
      

  2.   

    直接用TStringList不好吗?sl.Delete[i];
      

  3.   

    不会用TStringList,具体该怎么写?最好能给出完整点的代码 Delphi亲手- -
      

  4.   

    哦了,是说直接定义成TStringList吧?
      

  5.   

    但是希望最好是用数组,因为我读数据的时候又有类型问题了 SetLength(xx,Clientdataset1.RecordCount);
      

  6.   

    一些简单的应用可以直接使用TStringList
      

  7.   

    SetLength(xx,Clientdataset1.RecordCount);
     ClientDataSet1.First;
     for i := 0 to ClientDataSet1.RecordCount - 1 do
     begin
       xx[i]:=ClientDataSet1.FieldByName('aaa').AsString
       ClientDataSet1.Next;
     end;数组为了接收这里的数据,用tstringlist不知道改怎么改了,麻烦给个完善的解决方法
      

  8.   

    StringListvar
      i: Integer;
      xx: TStringList;
    begin
    //......
      xx := TStringList.Create;
      ClientDataSet1.First;
      for i := 0 to ClientDataSet1.RecordCount - 1 do
      begin
        xx.Add(ClientDataSet1.FieldByName('aaa').AsString);
        ClientDataSet1.Next;
      end; 
    //......
    end;
      

  9.   

    扔进try块问题解决了..真诡异
      

  10.   

    报错总是有道理的,什么错误码提示?用try处理不是治本的办法有可能是访问的对象已被释放,造成“访问越界”,如果是这样,调试一下,找到出错位置,增加一些判断即可