Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Delphi: Общие вопросы > Текст ровными колонками |
Автор: Jiro 14.07.17, 07:43 |
Хочу сделать вывод текста колонко образного типа в TMemo. Например: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> 11111111111111 11111111111111111 22222222222222222 222222222222 3333333333 333333333333333 Макс длинна первой колонки не известна. Я конечно понимаю что можно пробежаться по всему тексту, всё подсчитать и добавить недостающие пробелы. Но может этот велосипед уже изобретён или есть какой-то альтернативный способ, какойнить FormatStrXXX ? |
Автор: MBo 14.07.17, 07:45 |
А почему в Memo - текст нужно редактировать? |
Автор: Fr0sT 14.07.17, 08:01 |
Все, что сложнее разбития Табом, скорее всего идет нафиг и подыскивается более удобный вариант отображения |
Автор: ^D^ima 14.07.17, 13:41 |
Jiro выводи в StringGrid, в 2 колонки без отображения границ ячеек и не мучайся |
Автор: leo 16.07.17, 06:28 |
Цитата Jiro @ Я конечно понимаю что можно пробежаться по всему тексту, всё подсчитать и добавить недостающие пробелы. Но может этот велосипед уже изобретён или есть какой-то альтернативный способ... Альтернативный способ - использовать в качестве разделителя знак табуляции (символ #9). Нужно пробежаться по всему тексту, подсчитать макс.кол-во символов первой колонки, заменить первый пробел знаком табуляции и удалить повторяющиеся пробелы (если они есть). А затем установить ширину табуляции TMemо вызовом <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> , где TabCharCount - нужное кол-во символов от начала строки до второй колонки текста. var w:cardinal; ... w:=TabCharCount*4; Memo1.Perform(EM_SETTABSTOPS,1,@w); //Memo1.Invalidate; //для перерисовки мемо, если текст в нем уже установлен |