由于需要用户自定义每个字段的内容和位置,我是这样动态加入字段的;
但是我不知道如何才能确定字段的位置,TDBGrid有没有这样属性或者方法!望各位不吝赐教!(位置设定值保存在文件中!,如果是先判断位置的值,再加入的话,那就谢谢了!,除此之外还有没有其他的招数!thank you ! 5:00结账)
procedure TForm1.GridAddColumns(GridName: TDBGrid;ADOQuery:TADOQuery);
var
  col:TColumn;
  i:integer;
  j:integer;
begin
  with adoquery do
  begin
    for i:=0 to FieldCount-1 do
    begin
      col:=gridname.Columns.Add;
      col.Title.Caption:=adoquery.FieldList.Fields[i].DisplayLabel;
      col.Width:=adoquery.FieldList.Fields[i].DisplayWidth +50;
      col.FieldName:=adoquery.FieldList.Fields[i].DisplayName ;    end;  end;
end;

解决方案 »

  1.   

    比如说:
    犹如下列项
    id name sex 
    1  kkk  1
    2  mmm  0    如果id,name,sex在文件中存储位置值分别为 1,3,2则读取其位置应该为:
    id sex name
    1  1    kkk
    2  0    mmm 也就是说id,sex,name的顺序值是不固定的可以动态改变的!
      

  2.   

    str := dbgrid1.Columns[i].Title.caption;
      i:= adoquery.FieldByName(str).Index;
      

  3.   

    不明白你的意思,但隐约有些明白了。你是要
    1:保存dbgrid中各列的设置,下次可以读入这个设置?
    还是其它?
    如果是,可以再加上个filedname来配合它所在的列序号啊。
      

  4.   

    另外,DBGRID本身也有保存设置的方法:dbgrid1.columns.savetofile()