在指定DBGridEh的列时可以通过列的序号来指定,如下
  DBGridEh1.Columns[0].Visible := False;  //对应ID字段
  DBGridEh1.Columns[1].Visible := True;   //对应Name字段
  DBGridEh1.Columns[2].Visible := True;   //对应Score字段现在想通过字段名指定,请教大家该怎么写呢?
例如
DBGridEh1.Columns['ID'].Visible := False;  但这么写是错的

解决方案 »

  1.   

    听不懂意思,不知道是不是这样的效果。  DBGridEh1.Columns[0].filename := 'id';  //对应ID字段 
      DBGridEh1.Columns[0].title.caption:='id中文名';
      DBGridEh1.Columns[1].filename := 'name';  //对应Name字段 
      DBGridEh1.Columns[1].title.caption:='NAME中文名';
      DBGridEh1.Columns[2].filename := 'Score';  //对应Score字段
      DBGridEh1.Columns[2].title.caption:='SCORE中文名';如果看不到字段。。则加上列的宽度即可,
    DBGridEh1.Columns[0].width:=80;
    这样就够大了
      

  2.   

    意思是相通过字段名来指定DBGridEh的列,而不是通过数字来指定。
      

  3.   

    DataSource1.DataSet.FieldByName('NAME').Visible := False;
      

  4.   

        with DBGridEh.Columns.Add do
        begin
          FieldName := DataSet.fieldbyName('Name').AsString;
          Title.Caption := DataSet.fieldbyName('Caption').AsString;
          Title.Alignment := taCenter;
          Width := DataSet.fieldbyName('ColWidth').AsInteger;
          KeyList.Text := StringReplace(DataSet.fieldbyName('KeyList').AsString,
            '|', #13#10, [rfReplaceAll, rfIgnoreCase]);
          PickList.Text := StringReplace(DataSet.fieldbyName('PickList').AsString,
            '|', #13#10, [rfReplaceAll, rfIgnoreCase]);
          ;
          Visible := DataSet.fieldbyName('Visible').AsBoolean;
          ............
        end;我用一个内存数据集来管理表格的宽度,可见,以及其它信息