自动调整DBGrid的列宽度

本文介绍如何在程序中自动调整DBGrid的列宽度,以适应数据的长度。通过遍历DBGrid的列标题和数据集,计算出每列的最大长度,并据此设置宽度。代码段详细展示了这一过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 二零一四十二月二十四  15:32 自动调整DBGrid的列宽度
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
定义DBGrid的列宽度有2中方法,一种手动在属性columns中设置,另一种在程序中设置
下面给出在程序中自动根据数据的长度来定义每列的宽度和总宽度 的代码

//.................自动调整DBGrid的列代码段.....................................
  DBGColCount:= DBGrid1.Columns.Count;
  Setlength(aDBGColLg,DBGColCount);      // Setlength(数组名,大小)为动态函数分配大小
  objDataSet:= DBGrid1.DataSource.DataSet;
  for y:=0 to DBGColCount-1 do
  begin
//  DBGrid1.Columns[y].Width :=100;  //设定DBGrid列宽为100

    aDBGColLg[y]:= length(DBGrid1.Columns[y].Title.Caption);    //获得DBGrid标题长度
//    showmessage(IntToSTr(aDBGColLg[y]));     //显示获得DBGrid标题长度
  end;
  objDataSet.First;
  while not objDataSet.Eof do
  begin
    for z:=0 to DBGColCount-1 do
    begin
      tmpLength:=length(objDataSet.Fields.Fields[z].AsString);
      if tmpLength>aDBGColLg[z] then
      aDBGColLg[z]:= tmpLength;
    end;
    objDataSet.Next;
    for z:=0 to DBGColCount-1 do
    begin
    DBGrid1.Columns[z].Width:=aDBGColLg[z]*7;
    end;
  end;
//.....................分割线...................................................
源参考网址:http://blog.163.com/zsclei@126/blog/static/319261002012129111150146/ 
-----------------------------------------------------------年轻的梦,在这里发芽----------------------------------------------------------------------------------------      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值