Q&A

  • AutoSizeDBGridColumn 어디다 쓰면 됩니까..(조규춘..님소스)
사용예에

어디서 호출하란 말이 없네요..

..



procedure AutoSizeDBGridColumn(Grid : TDBGrid; column : integer);

var

temp : integer;

max : integer;

begin

max := 0;

Grid.DataSource.DataSet.DisableControls;

Grid.DataSource.DataSet.First;

temp := Grid.Canvas.TextWidth(grid.Columns[column].Title.Caption); //DBGrid의 타이틀 길이.

max := temp;

try

while not Grid.DataSource.DataSet.Eof do begin

// Grid Canvas를 기준으로한 지정한 Column의 각 row의 width중

// 최대값을 구하여 column의 width로 결정한다

temp := Grid.Canvas.TextWidth(grid.Columns[column].Field.DisplayText); //해당 셀의 글자 너비를 구함

if temp > max then

max := temp;

Grid.DataSource.DataSet.Next;

end;

Grid.Columns[column].Width := max + 1 + 10;

finally

Grid.DataSource.DataSet.First;

Grid.DataSource.DataSet.EnableControls;

end;

end;







사용예)

for i := 0 to DBGrid1.Columns.Count - 1 do

AutoSizeDBGridColumn(DBGrid1,i);



0  COMMENTS