블로그 이미지
자료에 문제가 있을 경우, 확인하는대로 삭제처리 하겠습니다. 즐거운 하루 되시길...
03-29 00:47
Total
Today
Yesterday

카테고리

분류 전체보기 (199)
이야기방 (20)
공부방 (173)
개발노트&관련잡다구니 (6)
procedure SetGridColumnWidths(Grid: TDBGrid);

const

  DEFBORDER = 10;

var

  temp, n: Integer;

  lmax: array [0..30] of Integer;

begin

  with Grid do begin

    Canvas.Font := Font;

    for n := 0 to Columns.Count - 1 do

      lmax[n] := Canvas.TextWidth(Grid.DataSource.DataSet.Fields[n].DisplayLabel) + DEFBORDER;



    grid.DataSource.DataSet.First;

    while not grid.DataSource.DataSet.EOF do begin

      for n := 0 to Columns.Count - 1 do begin

        //if columns[n].visible then begin

        temp := Canvas.TextWidth(trim(Columns[n].Field.DisplayText)) + DEFBORDER;

        if temp > lmax[n] then lmax[n] := temp;

        //end; { if }

      end; {for}



      grid.DataSource.DataSet.Next;

    end; { while }

    grid.DataSource.DataSet.First;

    for n := 0 to Columns.Count - 1 do

      if lmax[n] > 0 then

        Columns[n].Width := lmax[n];

  end; { With }

end;

 

원본링크 : forum.lazarus.freepascal.org/index.php?topic=16248.0

Posted by 래채
, |