Многострочный StringGrid

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Многострочный StringGrid

Сообщение speed_vm » 21.02.2013 21:24:45

Всем доброго времени суток! Хочу сделать автоматический перенос текста в СтрингГриде относительно границы ячейки. Пишу такой код:
Код: Выделить всё
With StringGrid1.Canvas
Do Begin
         TextStyle.SingleLine:= False;
         TextStyle.WordBreak:= True
     End

После чего компилятор выдаёт такую ошибку: "Argument can't be assigned to". Что я делаю не так?
speed_vm
 

Re: Многострочный StringGrid

Сообщение Light13 » 22.02.2013 06:52:02

1. Обойти это конечно можно, например, так
Код: Выделить всё
var
   TextStyle: TTextStyle;
begin
  TextStyle.Wordbreak := True;
  TextStyle.SingleLine := False;
  StringGrid1.Canvas.TextStyle := TextStyle;

Только это вам не поможет.

2. имхо лучше не использовать with - куча неприятностей из-за этого.
3. Обрабатывайте OnDrawCell: руками считайте длину текста, проверяйте выход за границы ячейки и т.д.
4. Не вижу в этом смысла: если в ячейках такая длинная строка, то выводите ее при фокусировки ячейки в другой элемент управления.
Аватара пользователя
Light13
постоялец
 
Сообщения: 127
Зарегистрирован: 17.07.2009 07:50:10
Откуда: Челябинск

Re: Многострочный StringGrid

Сообщение speed_vm » 22.02.2013 22:33:56

Проблема, в общем, была в отображении длинных заголовков столбцов. Посмотрев реализацию многострочного Грида на разных форумах, решил, что приемлемой будет реализация определения длины текстовой строки в заголовке и подгонке ширины столбца под эту длину.
Проект уже сдавать на тестирование нужно. На выходных поковыряюсь ещё. В любом случае, Light13, благодарю за помощь.
speed_vm
 


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 245

Рейтинг@Mail.ru