使DBGrid的列自动调整到何时大小

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

默认情况下,dbGrid的列宽时按照数据库字段的大小来调整的,如果我们一个字段中的数据表较少,那么看起来极不美观,于是,我写了一个函数来自动调整dbGrid的列宽:

函数如下:

//使dbGrid的内容自动适应他的宽度

procedure MakeDBGridColumnsAutoFixItsWidth(objDBGrid:TDBGrid);

var

cc:integer;

i,tmpLength:integer;

objDataSet:TDataSet;

aDgCLength:array of integer;

begin

cc:=objDbGrid.Columns.Count-1;

objDataSet:=objDbGrid.DataSource.DataSet;

setlength(aDgCLength,cc+1);

file://取标题字段的长度

for i:=0 to cc do

begin

aDgCLength[i]:= length(objDbGrid.Columns[i].Title.Caption);

end;

objDataSet.First;

while not objDataSet.Eof do

begin

file://取列中每个字段的长度

for i:=0 to cc do

begin

tmpLength:=length(objDataSet.Fields.Fields[i].AsString);

if tmpLength>aDgCLength[i]

then aDgCLength[i]:=tmpLength;

end;

objDataSet.Next;

end;

for i:=0 to cc do

begin

objDbGrid.Columns[i].Width:=aDgCLength[i]*7;

end;

end;

简单的测试了一下,效率还可以接受!(www.sinoprise.com)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航