Mega Code Archive

 
Categories / Delphi / Graphic
 

How to resize the columns of a TStringGrid TDrawGrid to fit the text

Title: How to resize the columns of a TStringGrid / TDrawGrid to fit the text type TGridHack = class(TCustomGrid); procedure ResizeStringGrid(_Grid: TCustomGrid); var Col, Row: integer; Grid: TGridHack; MaxWidth: integer; ColWidth: integer; ColText: string; MaxRow: integer; ColWidths: array of integer; begin Grid := TGridHack(_Grid); SetLength(ColWidths, Grid.ColCount); MaxRow := 10; if MaxRow Grid.RowCount then MaxRow := Grid.RowCount; for Col := 0 to Grid.ColCount - 1 do begin MaxWidth := 0; for Row := 0 to MaxRow - 1 do begin ColText := Grid.GetEditText(Col, Row); ColWidth := Grid.Canvas.TextWidth(ColText); if ColWidth MaxWidth then MaxWidth := ColWidth; end; if goVertLine in Grid.Options then Inc(MaxWidth, Grid.GridLineWidth); ColWidths[Col] := MaxWidth + 4; Grid.ColWidths[Col] := ColWidths[Col]; end; end;