如何根据字段名来确定它判断它在Dbgrid1里所对应的列数;比如dbgrid1 的列的字段名分别为
   dbgrid1.Columns[0].FieldName:='No';
  dbgrid1.Columns[1].FieldName:='Name';
那么
怎样根据字段名No就能知道它是dbgrid1的第零列;
怎样根据字段名Name就能知道它是dbgrid1的第一列;

解决方案 »

  1.   

    如果你没有调整DBGrid的Columns那你直接用它的
    对应的数据集组件的FieldbyName('NO').Index就可以得到.
      

  2.   

    好像有ColumnByName(index : String)这个属性!
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      MyList : TStringList;
      i : integer;
    begin      //数据库字段和标题不同
      MyList:=TStringList.Create;
      For I:=0 to DBGrid1.Columns.Count-1 do
      begin
        MyList.Add(DBGrid1.Columns[i].Title.Caption);
      end;
      Showmessage('第'+Inttostr(MyList.IndexOf('Name'))+'列'); //-1代表没有找到
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin   //数据库字段和标题相同
      Showmessage('第'+Inttostr(DBGrid1.DataSource.DataSet.FieldList.IndexOf('Name'))+'列');   //-1代表没有找到
    end;