我的dbgrid中的数据是通过query查询发过来了,因此不能设定coliums的数量,我怎么在运行时设置每一个coliums的宽度呢?如果用coilums[i]的话还有设置字段名,而这个字段名又是不确定的??

解决方案 »

  1.   

    dbgrid1.columns[0].width:=120;
    dbgrid1.columns[1].width:=100;
    dbgrid1.columns[2].width:=100;
    dbgrid1.columns[3].width:=100;.....就是这样!!
      

  2.   

    动态加入列:
    var
      NewCol:TColumn;
    begin
      NewCol := dbgrid1.column.add;
      newCol.caption :='';
      NewCol.Fieldname:='';
      NewCol.Width := 80;
      ...
    end;//改变列的宽度
    var
      ColCount:Integer;
    begin
      for Colcount:=0 to dbgrid1.columns.Count-1 do
      begin
        if dbgrid1.columns[ColCount].fieldname='aa' then
           dbgrid1.columns[ColCount].width := 80 ;
          if dbgrid1.columns[ColCount].fieldname='bb' then
           dbgrid1.columns[ColCount].width := 90 ;
    //...
      end;
    end;
      

  3.   

    我怎么获取查询执行后返回的字段数量呢??
    =============================================
    楼主多试试啊,这么简单的问题一试就出来了啊!
    ADOQuery1.FieldCount
      

  4.   

    ADOQuery1.FieldCount
    这就可以了,不用SQL语句
      

  5.   

    query1.recno//记录数
    query1.fieldcount字段数