|
<< Нажмите, чтобы показать Содержание >> Рамка и фон абзацев в ТРВ-Редакторе (TRichView) |
Абзацы могут иметь рамки и/или цветной фон. Эти свойства задаются в атрибутах абзаца («стиле») (см. TParaInfo). Рамка задаётся в свойстве Border, фон – в свойстве Background.
По умолчанию абзац не имеет рамок (TRVStyle.ParaStyles[i].Border.Style=rvbsNone), а его фон прозрачен (TRVStyle.ParaStyles[i].Background.Color=rvclNone).
Отступы рамки и цветной области определяются отдельно друг от друга, поэтому вы можете рисовать рамку внутри цветной области, рамки вокруг цветной области с зазором и даже создавать более интересные эффекты:

Пример рамки и фона абзаца
И граница, и цветная область имеют свойство BorderOffsets, которое задаёт:
▪для рамок: зазор между рамкой и содержимым абзаца;
▪для фона: цветной отступ от содержимого абзаца.
Смещение вверху, справа, внизу и слева (т.е. зазор и отступ) определяется свойствами Top, Right, Bottom, Left объекта BorderOffsets. Положительные значения увеличивают зазор (отступ). Отрицательные значения помещают рамку и края закрашенной области внутрь содержимого абзаца.
В приведенном выше примере Background.BorderOffsets = (Left: -7; Top: -7; Right: 7; Bottom: 7); значения измеряются в пикселях.
Значение BorderOffsets.Top не должно превышать значение свойства SpaceBefore того же абзаца.
Значение BorderOffsets.Bottom не должно превышать значение свойства SpaceAfter того же абзаца.

Схема: отступы рамки и фона абзаца
Некоторые стороны рамки могут быть скрыты свойством Border.VisibleBorders.
Горизонтальные линии используют свойства SpaceBefore и SpaceAfter 0-го стиля абзаца, но у них нет рамки и цветного фона.
Можно создать перенос строки, не начиная новый абзац. В редакторе нажмите Shift + Enter вместо Enter . Элементы после каретки будут перемещены на новую строку, но при этом останутся внутри того же абзаца (внутри общей рамки и цветной области, свойства SpaceBefore и SpaceAfter применяться не будут).
TParaInfo.Border