Как установить ширину колонки DBgrid по содержимому поля
Как установить ширину колонки DBgrid по содержимому поля
Как установить ширину колонки DBgrid по содержимому поля { thanks to thomas stutz' tip on this site!} { a dbgrid is awkward since it has no cells,} { you have to step through the table using next;} { this procedure is however slow } 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 //if columns[n].visible then lmax[n] := canvas.textwidth(fields[n].fieldname) + 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; {setgridcolumnwidths } procedure tform1.button1click(sender: tobject); begin setgridcolumnwidths(dbgrid3); end;