WEB开发网
开发学院软件开发Delphi 使DBGrid的列自动调整到何时大小 阅读

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

 2006-02-04 13:49:11 来源:WEB开发网   
核心提示:默认情况下,dbGrid的列宽时按照数据库字段的大小来调整的,使DBGrid的列自动调整到何时大小,如果我们一个字段中的数据表较少,那么看起来极不美观,于是,我写了一个函数来自动调整dbGrid的列宽:函数如下://使dbGrid的内容自动适应他的宽度PRocedure MakeDBGridColumnsAutoFix

默认情况下,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)

Tags:DBGrid 自动 调整

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接