出错如下:    
for i:=0 to DBGrid4.FieldCount-1 do
        listbox2.Items[i]:=DBGrid2.Columns[i].FieldName;

解决方案 »

  1.   

    DBGrid越界了。
    循环的次数是DBGrid的字段数
    而循环体内的程序却使用DBGrid2的字段数,两者如果Datasource不是同一个的话,有可能引起越界
      

  2.   

    同意楼上兄弟的看法。DBGrid4和DBGrid2的Datasource基本上可以确定不是同一个。
      

  3.   

    listbox2.Items[i]越界了;
    付值前判断一下.
    if listbox2.items.count <= i then
      listbox2.items.addd(DBGrid2.Columns[i].FieldName)
    else
      listbox2.items[i] = DBGrid2.Columns[i].FieldName;