Как растянуть колонки 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;

Вам понравиться

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *