如何使DBGrid的列自动调整到何时大小?
默认情况下,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)