На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! ПРАВИЛА РАЗДЕЛА · FAQ раздела Delphi · Книги по Delphi
Пожалуйста, выделяйте текст программы тегом [сode=pas] ... [/сode]. Для этого используйте кнопку [code=pas] в форме ответа или комбобокс, если нужно вставить код на языке, отличном от Дельфи/Паскаля.
Следующие вопросы задаются очень часто, подробно разобраны в FAQ и, поэтому, будут безжалостно удаляться:
1. Преобразовать переменную типа String в тип PChar (PAnsiChar)
2. Как "свернуть" программу в трей.
3. Как "скрыться" от Ctrl + Alt + Del (заблокировать их и т.п.)
4. Как прочитать список файлов, поддиректорий в директории?
5. Как запустить программу/файл?
... (продолжение следует) ...

Вопросы, подробно описанные во встроенной справочной системе Delphi, не несут полезной тематической нагрузки, поэтому будут удаляться.
Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.


Внимание
Попытки открытия обсуждений реализации вредоносного ПО, включая различные интерпретации спам-ботов, наказывается предупреждением на 30 дней.
Повторная попытка - 60 дней. Последующие попытки бан.
Мат в разделе - бан на три месяца...
Модераторы: jack128, D[u]fa, Shaggy, Rouse_
  
> Текст ровными колонками
Хочу сделать вывод текста колонко образного типа в TMemo.

Например:
ExpandedWrap disabled
    11111111111111    11111111111111111
    22222222222222222 222222222222
    3333333333        333333333333333


Макс длинна первой колонки не известна.
Я конечно понимаю что можно пробежаться по всему тексту, всё подсчитать и добавить недостающие пробелы.
Но может этот велосипед уже изобретён или есть какой-то альтернативный способ, какойнить FormatStrXXX ?
А почему в Memo - текст нужно редактировать?
Все, что сложнее разбития Табом, скорее всего идет нафиг и подыскивается более удобный вариант отображения
Codero ergo sum
// Программирую — значит, существую
Jiro
выводи в StringGrid, в 2 колонки без отображения границ ячеек и не мучайся
"Воля - это то, что заставляет тебя побеждать, когда твой рассудок говорит тебе, что ты повержен" Карлос Кастанеда
Цитата Jiro @
Я конечно понимаю что можно пробежаться по всему тексту, всё подсчитать и добавить недостающие пробелы.
Но может этот велосипед уже изобретён или есть какой-то альтернативный способ...

Альтернативный способ - использовать в качестве разделителя знак табуляции (символ #9). Нужно пробежаться по всему тексту, подсчитать макс.кол-во символов первой колонки, заменить первый пробел знаком табуляции и удалить повторяющиеся пробелы (если они есть). А затем установить ширину табуляции TMemо вызовом
ExpandedWrap disabled
    var
      w:cardinal;
      ...
      w:=TabCharCount*4;
      Memo1.Perform(EM_SETTABSTOPS,1,@w);
      //Memo1.Invalidate; //для перерисовки мемо, если текст в нем уже установлен
, где TabCharCount - нужное кол-во символов от начала строки до второй колонки текста.
1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
0 пользователей:


Рейтинг@Mail.ru
[ Script Execution time: 0,1059 ]   [ 20 queries used ]   [ Generated: 28.07.17, 18:56 GMT ]