Попробуйте это:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; vCol, vRow: Longint;var CanSelect: Boolean);VAR Wid: Integer;beginWITH Sender AS TStringGrid DOBEGINWid := Canvas.TextWidth(Cells[Col,Row]+' ');IF Wid > ColWidths[Col] THENColWidths[Col] := Wid;END;end; procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);VAR Wid : Integer;beginIF Key = #13 THENWITH Sender AS TStringGrid DOBEGINWid := Canvas.TextWidth(Cells[Col,Row]+' ');IF Wid > ColWidths[Col] THENColWidths[Col] := Wid;END;end; |
Имейте в виду, что в обработчике события OnSelectCell я переименовал параметры Col и Row на vCol и vRow, чтобы избежать путаницы со свойствами StringGrid, имеющими те же имена. StringGrid c данными методами всегда расширяет данную колонку, если вновь добавляемая строка имеет ширину большую чем текущая ширина колонки.
- Neil J. Rubenking [000821]