|
13 / 13 / 0
Регистрация: 17.08.2011
Сообщений: 172
|
|
Вывод на канву длинного текстового списка в несколько строк05.11.2014, 08:40. Показов 2356. Ответов 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
Вывод текста на канву Написать программу, выводящую на экран несколько строк заданного текстового файла Из текстового файла, содержащего несколько строк, удалить слова максимальной длины и лишние пробелы Вывод строк из текстового файлы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
|
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.
Задача: при создании документов установить период списания автоматически. . .
|
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
|
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|