Переносы в текстовом поле

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

Переносы в текстовом поле

Сообщение SSTA »

Здравствуйте
CW 6.3 ABC
Имею текстовое поле в репорте. Из-за ограниченности пространства хотелось бы, чтобы переносы при печати происходили не по пробелам, а по окончанию ширины поля, пусть даже при этом слова режутся как придется. Можно ли это сделать?
Спасибо.
АТ
C уважением, Александр Т.
Аватара пользователя
StillZero
Ветеран
Сообщения: 458
Зарегистрирован: 06 Июль 2005, 2:17
Откуда: Хабаровск
Поблагодарили: 1 раз
Контактная информация:

Re: Переносы в текстовом поле

Сообщение StillZero »

сделай деталь, в ней строковое поле
в цикле крути до длины строки, режь ее и печататй в строковое поле
типо так
LOOP пока не закончится оригинальная строка
MyPrintString = часть оригинальной строки
PRINT(RPT:MyDetail)
END
по аэродрому...
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8024
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 28 раз
Поблагодарили: 95 раз

Re: Переносы в текстовом поле

Сообщение Игорь Столяров »

Некрасиво ... и не в тему (вопрос был про поле TEXT). Здесь придется немного поработать "ручками".

1. Самый простой вариант - установить для печати текстового поля какой-нибудь шрифт с одинаковой
шириной печати всех символов (например Courier). Тогда можно узнать сколько символов всегда будет
печататься в одной строке. Далее - все просто. Подготоваливаешь сроку для печати - нарезая ее одинаковыми
кусочками вставляя перенос строки. По вкусу - можно анализировать последний символ и вставлять символ
переноса строки ('-').

2. Более творческий. Устанавливаешь для текстового поля высоту в Default. Начинаешь выводить данные строки
по одному символу и контролируешь параметр ?TextField{Prop:LineCount}, т.е. отслеживаешь, когда возникнет
перенос строки. В этом месте возвращаешься на символ назад и вставляешь перенос строки.
Сие действие можно оформить в виде процедуры в которую передашь адрес поля и максимально допустимое
кол-во строк для его печати (что бы была возможность ограничить высоту печати поля) - что бы печатать любые
тестовые поля, любой ширины и любым шрифтом.

Вот и все ... Удачи !
Make Clarion Great Again ! 😎
Аватара пользователя
samo_let
Посетитель
Сообщения: 42
Зарегистрирован: 26 Январь 2009, 16:24

Re: Переносы в текстовом поле

Сообщение samo_let »

Еще можно посмотреть как делается то же самое в хелпе в примере к PROP:LineCount
SSTA
Бывалый
Сообщения: 52
Зарегистрирован: 03 Февраль 2006, 5:41
Откуда: Хабаровск

Re: Переносы в текстовом поле

Сообщение SSTA »

Спасибо, с LineCount - хорошая идея.
C уважением, Александр Т.
Ответить