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;
'공부방 > Delphi' 카테고리의 다른 글
[델파이] 특정프로세스 쓰레드 개수(Thread Count) 조회 (0) | 2023.12.28 |
---|---|
[델파이] 투명 Panel 만들기 (0) | 2023.11.07 |
[델파이] 클래스명으로 폼 찾기(체크) (0) | 2019.06.10 |
[델파이] 가상메소드 (0) | 2018.04.06 |
[델파이] Form의 라이프사이클 (0) | 2018.04.06 |