|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|
Вывод на канву длинного текстового списка в несколько строк05.11.2014, 08:40. Показов 2327. Ответов 10
Метки нет (Все метки)
Добрый день. Пишу вывод на принтер, изображение формирую на канве TImage. С табличными данными и с простыми строками проблем нет, но вот столкнулся с проблемкой - нужно вывести список (несколько десятков фамилий). Ведь когда строка не будет влезать по ширине листа, нужно следующий элемент списка выводить уже с новой строки.
Пока ничего лучшего придумать не могу, чем выводить построчно (с помощью TextOutW), при этом, при добавлении нового элемента строки, измерять длину строки и сравнивать, влезает ли она по ширине страницы. Прежде, чем писать такую функцию, хочу спросить, нет ли более удобных методов (или готовых функций) для вывода текста в несколько строк?
0
|
|
| 05.11.2014, 08:40 | |
|
Ответы с готовыми решениями:
10
Перенос длинного текста на несколько строк Вывод текстового файла в несколько TextBox Обработка строк: определиния упорядоченности слов лексикографически, замена букв, поиск и вывод самого длинного слова. |
|
Супер-модератор
|
||||||
| 05.11.2014, 10:39 | ||||||
|
Выводи текст на канву TStaticText (он прекрасно поддерживает переносы слов на новую строку, выставь ему AutoSize в False просто), и потом перерисуй его на TImage:
2
|
||||||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|||||||||||
| 06.11.2014, 08:14 [ТС] | |||||||||||
|
Текст-то разместил на TStaticText, но никак не могу разобраться как перенести изображение из TStaticText в TImage. Пробовал, например, так:
Пробовал использовать пример, предложенный UI, но, сорри, с auto_ptr я не работал, компилятор спотыкается на auto_ptr, а, так же, не понимает bm.get. Добавлено через 7 минут Вот, для примера, создал новый проект, разместил на форме TStaticText и TImage, пишу:
Пробую Image1->Canvas->Handle - вообще ничего не происходит.
0
|
|||||||||||
|
Супер-модератор
|
|||||||||||
| 06.11.2014, 09:52 | |||||||||||
|
Для того, чтобы компилятор не спотыкался - надо подключить
0
|
|||||||||||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|||||||||||
| 06.11.2014, 10:56 [ТС] | |||||||||||
|
Да, кстати, пробовал тоже создавать и удалять битмап вручную с твоим кодом - никакого эффекта. Вот, смотри, в чистом проекте на форму помещены TStaticText и TImage (TStaticText уже имеет caption по умолчанию). Подключаю
#include <memory>, пишу:
Добавлено через 42 минуты Если убрать прозрачность у StaticText и назначить фон, то видно, что
0
|
|||||||||||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|||||||||||||||||||||
| 06.11.2014, 15:03 [ТС] | |||||||||||||||||||||
|
Спасибо, по клику работает
![]() Добавлено через 24 минуты Кстати, если по клику кнопки, то работает и такой вариант, вместо всего этого кода:
Вот почему у меня в программе не получается, видимо, по той же причине, почему в этом примере не работало в Create, сейчас пытаюсь разобраться. А в своей программе делаю так: есть дополнительный юнит, подключенный к основному юниту, в нём есть функция Nar_Print, которая вызывается по клику кнопки "Печать" основного юнита. В том дополнительном юните есть булевая переменная PrintingDebugging (для того, чтобы при тестировании печати видеть результат на экране). На форме дополнительного юнита есть TImage. И вот функция Nar_Print рисует на TImage, когда надо напечатать очередную страницу я пишу:
![]() Добавлено через 17 минут Может, этот метод не работает когда компоненты невидимы?
0
|
|||||||||||||||||||||
|
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
|
||
| 06.11.2014, 15:50 | ||
|
Какой нить "Microsoft XPS Document Writer" ? И печатать в него... может так проще?
0
|
||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
||||||||||||||||
| 06.11.2014, 15:56 [ТС] | ||||||||||||||||
|
Вот оно что. Итак, в том примерчике
Добавлено через 4 минуты krv, может, и проще в вопросе написания кода, но не намного, но тут нагляднее - сразу видишь результат.
0
|
||||||||||||||||
|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|
| 06.11.2014, 19:42 [ТС] | |
|
Avazart, спасибо, функция DrawText() - то, что нужно.
0
|
|
| 06.11.2014, 19:42 | |
|
Помогаю со студенческими работами здесь
11
Вывод текста на канву Написать программу, выводящую на экран несколько строк заданного текстового файла Из текстового файла, содержащего несколько строк, удалить слова максимальной длины и лишние пробелы Вывод строк из текстового файлы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|