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