![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Delphi. Вывод форматированного текста на канвас. [D7, Win2k, WinXP]
Bizquit © (2005-10-04 07:58:00)Господа программеры! Задача заключается в следующем:
Есть компонент-контейнер для хранения форматированного текста на основе TList'а, где каждый его элемент сожержит информацию о куске текста (имя шрифта, размер, стиль и т.п.) Необходимо вывести ВЕСЬ текст (просматривая поэлементно контейнер) на заданный канвас в строго определенную прямоугольную область. Дополнительно: Если весь текст не умещается в заданную область, то пропорционально уменьшить размер шрифта на 1усл.ед. и попробовать снова вывести и т.д. пока ВЕСЬ текст не влезет в заданную область.
Буду очень признателен за ЛЮБУЮ помощь.
MBo (2005-10-04 13:16:00) [1]DrawText и перенос умеет делать.
Bizquit (2005-10-04 12:16:00) [2]да, вот чую, что придется этим самым DrawText'ом рендерить... еще придется перенос по словам организовывать... думал может народ уже заморачивался и куском кода поможет... ладно, сам буду делать, но все равно спасибо за участие.
MBo (2005-10-04 11:56:00) [3]А это... DrawText для чего предназначена?
Bizquit (2005-10-04 11:05:00) [4]не то...(( мне надо на канвас рендерить...
MBo (2005-10-04 09:00:00) [5]ну исходники его тут и не нужны.
Как я вижу принцип реализации твоей задачи:
Имеются куски текста, и соответствующие форматы.
Устанавливаешь в RichEdit очередной формат, выводишь текст. Измеряешь размер. Все.
Альтернатива - DrawText для каждого куска c соотв. флагами для расчета прямоугольника вывода.
Bizquit (2005-10-04 08:56:00) [6]сейчас снова пересмотрел сорцы RichEdita и ума не приложу как им можно воспользоваться...
MBo (2005-10-04 08:45:00) [7]Ну и пусть не надо редактировать.
Но что мешает воспользоваться возможностями Rich для форматного вывода, отвечающего общепринятфм стандартам, и измерения необходмиой рабочей области?
Bizquit (2005-10-04 08:32:00) [8]Неее, не смахивает )). Нужно, к примеру, создать битмап в памяти и на него уже просто вывести весь текст. Редактировать его(текст) не надо.
MBo (2005-10-04 08:09:00) [9]Сильно смахивает на RTF и соответственно напрашивается использование RichEdit...