Коллеги, есть удобная команда Text->Shift right, она добавляет по табулятору в начало каждой выделенной строки. Но есть у нее одно раздражающее свойство: табулятор добавляется не с теми атрибутами, которые в тексте, а с дефолтными, из системных настроек. И вот были у меня строчки помельче, нажимаю Text->Shift right, - и строчки подрастают, и ширина, кстати, табуляторов тоже не совпадает с остальным текстом, и потому левая граница буков съезжает. Прям ад.
Предлагаю подлечить вот так, чтобы брала атрибуты из того места, в которое вставляет табулятор:
PROCEDURE TextCmds.DoShift писал(а):
wr.SetPos(pos); IF rd.attr # NIL THEN wr.SetAttr(rd.attr) END;
(это единственная в модуле строка с wr.SetPos). Чтец rd уже есть в процедуре, и он как раз на нужном месте позиционирован.