Delphi自动调整DBGrid的列宽

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

procedure TForm1.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);

for i:=0 to cc do

begin

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

end;

objDataSet.First;

while not objDataSet.Eof do

begin

    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;

ps:上面的代码经过测试,确实可以实现效果,只是在使用时记得先声明并在数据绑定后调用。

posted on 2015-09-01 00:41  martian6125  阅读(243)  评论(0编辑  收藏  举报