|
<< Нажмите, чтобы показать Содержание >> Единицы измерения в ТРВ-Редакторе (TRichView) |
Пика или пайка (pc) – типографская единица измерения, равная 1/6 of дюйма. Пика содержит 12 типографских пунктов.
Типографский пункт (pt) – типографская единица измерения, равная 1/72 дюйма. Он используется для задания размера шрифта.
Твип (tw, «twentieth of a point», «двадцатая доля пункта») определяется как 1/20 пункта. Он равен 1/1440 дюйма.
Англо-метрическая единица (English metric unit) (EMU) полезна для представления дробных долей дюйма и миллиметра целыми значениями. 1 дюйм = 914400 EMU, 1 мм = 36000 EMU.
Пиксель (px) – точка в растровом изображении или на устройстве. Для преобразования дюйма (или другой абсолютной единицы измерения) в пиксели необходимо знать плотность пикселей (обозначаемую как «пиксели на дюйм» (PPI) или «точки на дюйм» (DPI)) данного устройства. Для некоторых устройств (например, принтеров) это значение является точным. Для других устройств (например, компьютерных дисплеев) это значение является логическим и может быть изменено пользователем. Для экранов типичное значение «пикселей на дюйм» составляет 96 (доступно как Screen.PixelsPerInch).
В ТРВ-Редакторе стандартная плотность пикселей задаётся свойством UnitsPixelsPerInch компонента TRVStyle. При отображении на устройстве (экране или бумаге) размеры пересчитываются в соответствии с плотностью пикселей устройства (DPI) следующим образом:
значение * (DPI устройства) / UnitsPixelsPerInch
Плотность пикселей экрана может быть получена как Screen.PixelsPerInch. В новых версиях Delphi поддерживается конфигурация системы, в которой имеются несколько мониторов с различной плотностью пикселей.
Размер шрифта (свойство Size текстового стиля)
1 «стандартный» пиксель = 1/TRVStyle.UnitsPixelsPerInch дюйма.
Следующие свойства TCustomRichView измеряются в «стандартных» пикселях.
▪LeftMargin, RightMargin, TopMargin, BottomMargin – поля;
▪MaxTextWidth – максимальная ширина для переноса слов;
▪MinTextWidth – минимальная ширина для переноса слов (минимальная ширина прокручиваемой области, не считая полей).
Свойства типа TRVLength измеряются в единицах TRVUnits. Это значения типа с плавающей запятой (Extended), которые могут представлять длины, заданные в дюймах, сантиметрах, миллиметрах, пиках, пунктах или «стандартных» пикселях.
В TRichView, такие значения используются в:
▪свойствах TRichView.DocParameters; они измеряются в TRichView.DocParameters.Units.
▪свойствах TRVPrint; они измеряются в TRVPrint.Units.
В Инструментах интерфейса ТРВ (RichViewActions) этот тип используется для задания единиц измерения значений, отображаемых в диалоговых окнах. Они измеряются в TRVAControlPanel.UnitsDisplay.
В СРВ-Редакторе (ScaleRichView) этот тип используется для свойств TSRichViewEdit.PageProperty и TSRichViewEdit.ViewProperty. Они измеряются в TSRichViewEdit.UnitsProgram.
Свойства типа TRVStyleLength измеряются в единицах TRVStyleUnits. Это значения целочисленного типа, которые могут представлять длины, заданные в «стандартных» пикселях, твипах или EMU.
Свойство TRVStyle.Units определяет единицы измерения для свойств (и подсвойств) этого компонента TRVStyle, а также для свойств элементов в документах, загруженных в связанные компоненты TRichView.
Свойства TRVStyle, измеряемые в TRVStyleUnits
Следующие свойства измеряются в TRVStyleUnits:
▪FirstIndent, LeftIndent, RightIndent, SpaceBefore, SpaceAfter стиля абзаца;
▪Position элемента коллекции позиций табуляции стиля абзаца;
▪Left, Right, Top, Bottom полей фоновой области (Background.BorderOffsets) стиля абзаца;
▪Left, Right, Top, Bottom зазоров рамки (Border.BorderOffsets) стиля абзаца, а также Width и InternalWidth этой рамки;
▪MarkerIndent, FirstIndent, LeftIndent в уровнях списка стиля списка.
Свойства элементов документа, измеряемые в TRVStyleUnits
Следующие свойства элемента документа измеряются TRVStyleUnits:
▪rvepSpacing, rvepImageWidth, rvepImageHeight, rvepVShift (последнее только если rvepVShiftAbs имеет ненулевое значение)
Следующие свойства таблицы измеряются в TRVStyleUnits:
▪BorderWidth, CellBorderWidth;
▪BorderHSpacing, BorderVSpacing, CellHSpacing, CellVSpacing;
▪CellHPadding, CellVPadding, CellPadding;
▪BestWidth (только если значение положительно).
▪некоторые свойства в BackgroundProperties таблицы и BackgroundProperties ячеек (см. подробности ниже).
Следующие свойства ячеек таблиц измеряются в TRVStyleUnits:
▪BestWidth (только если значение положительно).
Толщина горизонтальных линий также измеряется в TRVStyleUnits.
Следующие свойства текстовых меток измеряются в TRVStyleUnits:
▪MinWidth.
Следующие свойства сносок в рамках измеряются TRVStyleUnits:
▪BoxProperties.Width и Height (если WidthType и HeightType имеют «абсолютные» значения);
▪BoxPosition.HorizontalOffset и VerticalOffset (если HorizontalPositionKind и VerticalPositionKind имеют «абсолютные» значения).
В Инструментах интерфейса ТРВ (RichViewActions) этот тип используется для TRVAControlPanel.UnitsProgram (единицы измерения свойств нескольких программных команд (actions)).
Свойства фона, измеряемые в TRVStyleUnits
Следующие свойства фона TRichView, таблиц и ячеек измеряются в TRVStyleUnits:
▪ImageWidth и ImageHeight (только если значения положительны)
▪HorizontalOffset and VerticalOffset (только если соответствующие типы отступов имеют «абсолютные» значения);
Импорт и экспорт
В RTF (Rich Text Format) используются твипы, поэтому все размеры конвертируются в твипы. При загрузке, значения конвертируются в TRVStyle.Units.
В HTML используются пиксели (с плотностью пикселей равной 96), поэтому все размеры конвертируются в такие пиксели. В HTML CSS, размеры сохраняются либо как целочисленные пиксели (если TRVStyle.Units=rvstuPixels), либо как дробные значения пунктов (если TRVStyle.Units=rvstuTwips).
В файлах RVF (RichView Format), размеры сохраняются в TRVStyle.Units. При загрузке, они либо конвертируются в TRVStyle.Units, либо наоборот, TRVStyle.Units меняются. См. «Единицы измерения» в обзоре RVF.