Содержание материала

Попробуйте это:

 

Code:

procedure TForm1.StringGrid1SelectCell(Sender: TObject; vCol,

vRow: Longint; var CanSelect: Boolean);

var

Wid: Integer;

begin

with Sender as TStringGrid do

begin

   Wid := Canvas.TextWidth(Cells[Col, Row] + ' ');

   if Wid > ColWidths[Col] then

     ColWidths[Col] := Wid;

end;

end;

 

procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);

var

Wid: Integer;

begin

if Key = #13 then

   with Sender as TStringGrid do

   begin

     Wid := Canvas.TextWidth(Cells[Col, Row] + ' ');

     if Wid > ColWidths[Col] then

       ColWidths[Col] := Wid;

   end;

end;

 

Имейте в виду, что в обработчике события OnSelectCell я переименовал параметры Col и Row на vCol и vRow, чтобы избежать путаницы со свойствами StringGrid, имеющими те же имена. StringGrid c данными методами всегда расширяет данную колонку, если вновь добавляемая строка имеет ширину большую чем текущая ширина колонки.

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

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить