EnsureVisualCaretOrder
Формы, взаимодействие, Unicode
Описание
Внутренний помощник TPDFlibFormSession, вычисляющий кэшированный физический порядок каретных позиций, используемый визуальным перемещением каретки
Действительный кэш для текущего значения правки и разрешенного направления текста переиспользуется, иначе порядок заново строится по таблице границ графем
Значение разбивается на строки по разрывам LF, CR и CRLF, и каждая строка разрешается в двунаправленные прогоны под разрешенным базовым направлением, с резервом в один прогон, если разрешение прогонов не удалось
Уровни вложения прогонов ограничиваются диапазоном от 0 до 125, а визуальный порядок прогонов следует разрешенным уровням
Индексы границ графем добавляются в физическом порядке слева направо по всем прогонам: вперед для прогонов слева направо и назад для прогонов справа налево, поэтому логический индекс на границе смешанного направления может занимать две разные позиции
Смежные дублирующиеся позиции сливаются, позиции разрывов строк становятся отдельными позициями, пустой результат откатывается к единственной позиции 0, а перестроение сбрасывает визуальную позицию в -1
Объявление
procedure EnsureVisualCaretOrder;
См. также
InvalidateVisualCaretOrder, GetVisualCaretOrder, MoveVisualCaret, GetResolvedTextDirection, EnsureSelectionBoundaries, TPDFlibFormTextDirection, TPDFlibFormSession