본문 바로가기

Development/Delphi

StringGrid의 Column의 크기(width) 자동 조절

원글 : http://www.howto.pe.kr/zboard/zboard.php?id=delphi_tiptrick&page=23&sn1=&divpage=1&sn=off&ss=on&sc=on&select_arrange=name&desc=desc&no=76


procedure AutoSizeGridColumn(Grid : TStringGrid; column : integer);
var
  i : integer;
  temp : integer;
  max : integer;
begin
  max := 0;
  for i := 0 to (Grid.RowCount-1) do
  begin
    // Grid Canvas를 기준으로한 지정한 Column의 각 row의 width중
    // 최대값을 구하여 column의 width로 결정한다
    temp := Grid.Canvas.TextWidth(grid.cells[column, i]);
    if temp > max then
      max := temp;
  end;
  Grid.ColWidths[column] := max + Grid.GridLineWidth + 3;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  // 1번째 칼럼의 크기(width)을 조정하는 예
  AutoSizeGridColumn(StringGrid1, 1);
end;