Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

Курс видеоуроков «Программирование и взлом 2O18»
Выпущен 13 августа 2O18 года
Свежие инструменты, новые видеоуроки!

  • 300+ видеоуроков
  • 800 инструментов
  • 100+ свежих книг и статей

УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Авторазмер ширины колонок TStringGrid

Автор: Neil J. Rubenking

Я использую компонент StringGrid и хотел бы менять ширину его колонок в соответствии с расположенным в них текстом, другими словами я хочу чтобы весь текст в них был виден, но как это сделать?

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


 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 данными методами всегда расширяет данную колонку, если вновь добавляемая строка имеет ширину большую чем текущая ширина колонки.




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS