EnsureVisualCaretOrder

Формы, взаимодействие, Unicode

Описание

Внутренний помощник TPDFlibFormSession, вычисляющий кэшированный физический порядок каретных позиций, используемый визуальным перемещением каретки

Действительный кэш для текущего значения правки и разрешенного направления текста переиспользуется, иначе порядок заново строится по таблице границ графем

Значение разбивается на строки по разрывам LF, CR и CRLF, и каждая строка разрешается в двунаправленные прогоны под разрешенным базовым направлением, с резервом в один прогон, если разрешение прогонов не удалось

Уровни вложения прогонов ограничиваются диапазоном от 0 до 125, а визуальный порядок прогонов следует разрешенным уровням

Индексы границ графем добавляются в физическом порядке слева направо по всем прогонам: вперед для прогонов слева направо и назад для прогонов справа налево, поэтому логический индекс на границе смешанного направления может занимать две разные позиции

Смежные дублирующиеся позиции сливаются, позиции разрывов строк становятся отдельными позициями, пустой результат откатывается к единственной позиции 0, а перестроение сбрасывает визуальную позицию в -1

Объявление

procedure EnsureVisualCaretOrder;

См. также

InvalidateVisualCaretOrder, GetVisualCaretOrder, MoveVisualCaret, GetResolvedTextDirection, EnsureSelectionBoundaries, TPDFlibFormTextDirection, TPDFlibFormSession