Попробуйте это:
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 данными методами всегда расширяет данную колонку, если вновь добавляемая строка имеет ширину большую чем текущая ширина колонки.
- << Назад
- Вперёд
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!