Memo.text конкатенация строк
Добрый день.
FastReport 4.14. В событие OnBeforePrint объекта Memo1 добавляю код:
Memo1.Text := Memo1.Text + 'Some text';
В отчете выводится только Memo1.Text, прим этом если текст добавлять в начало строки:
Memo1.Text := 'Some text' + Memo1.Text;
то выводится полная строка, как и хотелось.
Подскажите, почему?
FastReport 4.14. В событие OnBeforePrint объекта Memo1 добавляю код:
Memo1.Text := Memo1.Text + 'Some text';
В отчете выводится только Memo1.Text, прим этом если текст добавлять в начало строки:
Memo1.Text := 'Some text' + Memo1.Text;
то выводится полная строка, как и хотелось.
Подскажите, почему?
Комментарии
Если поставить Memo1.StretchMode = smActualHeight , то, скорее всего, будет работать нормально.
Дело в том, что в Memo, чаще всего, в конце идёт символ разрыва строки (особенно в том случае, если редактировать его вручную)
Да, вы оказались правы, в таком случае текст вставляется в конец строки, после знака переноса.
Решил использованием IIF, в тексте самого Memo, но эта реализация не нравится - код нечитабелен, нельзя вставить комментарии.
Может быть подскажете элегантное решение для добавления текста в конец Memo.Text перед разрывом через событие OnBeforePrint (без использования дополнительных функций и удаления последнего символа)?
Это поведение свойствами не регулируется?
На вскидку пару:
1) хранить первоначальный текст Memo1 в переменной внутри кода отчёта (перед begin поставить var). При onBeforePrint делать не Memo1.Text := Memo1.Text + что-нибудь, а делать Memo1.Text := что-то_1 + что-то_2;
2) перед добавлением текста: 3) iif можно писать не в одну строку, а в несколько - должно сработать.
4) вставить комментарии можно тем же iif - iif(false,'ТВОЙ КОММЕНТАРИЙ','')
P.S. Опции такой нет. Это особенность FastReport. Символы #13#10 он добавляет сам всегда.