Q&A

  • DBGrid 컬럼 사이즈 조절은 어떻게...?
쿼리한 결과를 DBGrid에 보여주고 있는데

각각의 컬럼의 사이즈를 컬럼 데이타 중 가장 큰 사이즈로

자동으로 조절하고 싶은데...잘 안되네요...

고수님들의 한수 가르침을 바랍니다...



2  COMMENTS
  • Profile
    최석기 2000.09.08 20:59
    박일용 wrote:

    > 쿼리한 결과를 DBGrid에 보여주고 있는데

    > 각각의 컬럼의 사이즈를 컬럼 데이타 중 가장 큰 사이즈로

    > 자동으로 조절하고 싶은데...잘 안되네요...

    > 고수님들의 한수 가르침을 바랍니다...

    >



    안녕하세요..

    델파이세상(http://www.freechal.com/delphiworld)에 최석기입니다..



    이건 제가 만들어서 사용하는 함수거든요.,.



    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);

  • Profile
    노이 2012.10.11 07:29

    최석기님 감사합니다~^^ 잘되네요