Как растянуть колонки TStringGrid по ширине
Вполне естественное желание возникает при использовании TStringgrid — это установить ширину каждой колонки таблицы по максимальной длине заполнения её рядов. За несколько лет существования среды Delphi и затем RAD Studio, разработчики так и не удосужились обратить внимание на это нужное свойство, ведь 99% программистов применяют это выравнивание в сетках TStringgrid.
Собственно процедура такова, ничего сверхъестественного:
procedure TForm1.AutoSizeCol(Grid: TStringGrid; Column: integer); var i : integer; W, WMax :single; begin WMax := 0; //максимальный размер колонки for i := 0 to (Grid.RowCount - 1) do // пробегаем все колонки и ищем максимальную длину begin W := Grid.Canvas.TextWidth(Grid.Cells[Column, i]); //длина колонки if W>WMax then WMax := W; end; Grid.Columns[column].Width :=WMax+1; // +1 чтобы был минимальный зазор от линии сетки end; |
применяем так:
procedure TForm1.Button1Click(Sender: TObject); begin AutoSizeCol(StringGrid1, 0); //выравниваем 1 столбец в сетке end; |