|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|
Вывод на канву длинного текстового списка в несколько строк05.11.2014, 08:40. Показов 2361. Ответов 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
Вывод текста на канву Написать программу, выводящую на экран несколько строк заданного текстового файла Из текстового файла, содержащего несколько строк, удалить слова максимальной длины и лишние пробелы Вывод строк из текстового файлы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: при создании документов установить период списания автоматически. . .
|