默认情况下,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)
<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>