Delphi中实现TDBGrid列宽度自动调整

在delphi中,grid是不能够自动调整列宽度的。其中也找过很多插件,而未能找到。于是自己写了一个函数用于实现这个功能,希望能帮到有需要的人。
procedure TMainForm.FixDBGridColumnWidth(const DBGrid: TDBGrid);
var
  i : Integer;
  cusWidth : Integer;//改变窗体大小后,数据表格宽度
  varWidth : Integer; //每列宽度
  totColumns : Integer;
begin
  totColumns :=0;
  cusWidth := Abs(DBGrid.ClientWidth);
  for i := 0 to -1 + DBGrid.Columns.Count do
  begin
    Inc(totColumns);
  end;
  varWidth := cusWidth div totColumns;
  for i := 0 to DBGrid.Columns.Count-1 do
  begin
    if i = DBGrid.Columns.Count-1 then
    begin
      DBGrid.Columns[i].Width := varWidth - 16;
    end
    else begin
           DBGrid.Columns[i].Width := varWidth;
         end;
  end;
end;


然后在改变窗体大小时,执行FixDBGridColumnWidth这个过程,传入TDGrid的一个实例

你可能感兴趣的:(C++,c,C#,Delphi)