http://www.xker.com/article/articleview/2004-12-16/article_view_249.htmDelphi中实现DBGrid列宽度自动调整使DBGrid的列自动调整到何时大小 http://www.7880.com/info/Article-38ac0e80.htmlprocedure 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;
http://www.7880.com/info/Article-38ac0e80.htmlprocedure 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;