qq528

根据表格中的数据长度自动调整表格宽度DBGrid

根据表格中的数据长度自动调整表格宽度DBGrid
2008年03月27日 星期四 下午 08:16
根据表格中的数据长度自动调整表格宽度
http://www.csai.cn 作者:Delphi开发经验技巧宝典 来源:希赛网 2008年3月11日 
——此文章摘自《Delphi开发经验技巧宝典》定价:¥95.00 特价:¥71.25 购买>>

     DBGrid 表格列的宽度是根据所连接的字段的长度来决定的,由于设计字段长度的时候留有足够长的空间,因此通常情况下在表格显示数据的时候表格的列宽很大,大部分都是空白处,这样在浏览数据的时候很不方便,为了避免这一情况,可以考虑根据数据实际数据长度来自动调整表格的宽度,如图7.16所示。


图7.16 根据表格中数据长度自动调整表格宽度

     在“自动设置表格宽度”文本框中获取每个字段实际使用的最大字节数,然后设置DBGrid表格列的Field.DisplayWidth属性来根据实际字段长度自动调整表格宽度,主要代码如下:
     procedure TFrmOrderBy.BtnOrderClick(Sender: TObject);
     var
      i: integer;
      fieldname: string;
     begin
      with AQuery do
       begin
         Close;
         SQL.Clear;
         SQL.Add(\'SELECT max(datalength(id)) AS id ,\');
         SQL.Add(\'max(datalength(number))AS number,\');
         SQL.Add(\'max(datalength(name))AS name,\');
         SQL.Add(\'max(datalength(old))AS old,\');
         SQL.Add(\'max(datalength(sex))AS sex,\');
         SQL.Add(\'max(datalength(telephone))AS telephone,\');
         SQL.Add(\'max(datalength(department))AS department,\');
         SQL.Add(\'max(len(joindate))AS joindate\');
         SQL.Add(\'FROM TB_Worker\');
         Open;
       end;
      for i := 0 to DBGList.Columns.Count - 1 do
       begin
         fieldname := DBGList.Columns[i].Field.FieldName;
         DBGList.Columns[i].Field.DisplayWidth := AQuery.FieldByName(fieldname).AsInteger;
       end;
     end;

发表于 2008-12-01 23:24  @努力的蜗牛@  阅读(1435)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2021-12-28
  • 2021-11-29
  • 2021-12-09
  • 2021-11-29
  • 2021-05-27
  • 2021-12-12
  • 2021-10-19
  • 2021-12-14
猜你喜欢
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-11-29
  • 2021-12-09
  • 2021-12-09
  • 2021-10-19
相关资源
相似解决方案