セルの幅を文字列に合わせよう

自動的に幅の調整をしてもらえると楽ですよね。
これもたいして難しくはないのですが。
以下のソース参考。
応用すれば編集したセルの列を自動的に幅揃えすることとかも出来ますね。

procedure TStringGridEx.AdjustWidths;
var
  ACol, ARow, MaxSize: Integer;
begin
  Canvas.Font := Font;
  
  for ACol := 0 to ColCount - 1 do
  begin
    MaxSize := 0;

    for ARow := 0 to RowCount - 1 do
    begin
      if MaxSize < Canvas.TextWidth(Cells[ACol, ARow]) then
        MaxSize := Canvas.TextWidth(Cells[ACol, ARow]);
    end;

    if MaxSize = 0 then ColWidths[ACol] := DefaultColWidth
    else ColWidths[ACol] := MaxSize + 5;
  end;

  DefaultRowHeight := Abs(Font.Height) + 4;
end;

Return index page