Author: Tomas Rutkauskas
When a form resizes, how do I resize the columns so they will occupy all available
space? E.g. if stringgrid.width=100 and I have 4 columns, how do I adjust the
columns width?
Answer:
1 procedure TForm1.FormResize(Sender: TObject);
2 var3 c: integer;
4 colWidth: integer;
5 lineWidths: integer;
6 delta: integer;
7 begin8 Grid.Width := ClientWidth - 24; {or whatever}9 lineWidths := Grid.GridLineWidth * (Grid.ColCount - 1);
10 colWidth := (Grid.ClientWidth div Grid.ColCount) - Grid.GridLineWidth;
11 delta := (Grid.ClientWidth - (colWidth * Grid.ColCount)) - lineWidths;
12 for c := 0 to Grid.ColCount - 1 do13 begin14 Grid.ColWidths[c] := colWidth;
15 if c = Grid.ColCount - 1 then16 Grid.ColWidths[c] := Grid.ColWidths[c] + delta;
17 end;
18 end;