EnsureSelectionBoundaries

表单、交互、Unicode

描述

TPDFlibFormSession 的内部辅助函数,为当前编辑值构建并缓存 Unicode 边界表

对 fsuUnicodeCodePoint,它扫描 UTF-16 值并为每个码点记录一个边界,把有效的代理对视为单个增补码点、未配对代理视为独立码点

对 fsuGraphemeCluster,它构建扩展字素簇边界,使组合序列和连写的 emoji 保持不可分割

每个表以零处边界开始并存储零基 UTF-16 偏移量;非空的缓存表会被复用,直到 InvalidateSelectionBoundaries 清除它

这些表支撑 UTF-16 代码单元、Unicode 码点和字素簇之间的所有索引转换

声明

procedure EnsureSelectionBoundaries(
  IndexUnit: TPDFlibFormSelectionUnit);

参数

IndexUnit请求的边界表:fsuUnicodeCodePoint 或 fsuGraphemeCluster

示例

Session.SetSelectionRange(1, 2, fsuUnicodeCodePoint);
Session.GetSelectionRange(fsuUTF16CodeUnit, Sel);

另请参阅

InvalidateSelectionBoundaries, EnsureVisualCaretOrder, ClampTextLength, SetSelectionRange, GetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession