Форум — Ответы     (  К темам )
 ?  Тесл: как обработать (перенести ) длинную строку в TStringGrid (11-04-2003 16:57:44)
Здравствуйте, Все.
Помогите: в StringGrid нужно осуществить перенос
длинной строки в ячейке.
(Чтобы она автоматичеси переносилась, а не заползала за правый край ячейки)
 Alexander (11-04-2003 20:30:00)
Обычными методами — никак. Можно самому рисовать текст в ячейках, тогда все в наших руках (по-моему, это проще всего). Например, внутри ячейки какой-нибудь контрол иметь, который будет текст переносить.
Недостаток: слишком много будет контролов внутри.
Второй вариант — унаследовать класс от TCustomGrid или TStringGrid и в коде отрисовки текста (см. модуль grids, один из методов TStringGrid.DrawCell) заменить Canvas.TextRect на, например, DrawText с параметром DT_WORDBREAK.
Потому что TextRect автоматически добавляет флаг CLIPPING, т.е. обрезание текста (без переноса).
Недостатки: сложно; при переходе на новую версию компилятора скорее всего придется переписывать новый класс.
Я ответил на вопрос ?
 Alexander (11-04-2003 20:39:53)
Чего-то я совсем торможу, просто прямо в OnDrawCell рисуй себе текст через DrawText с флагом DT_WORDBREAK.