SelectionUnitToUTF16
表单、交互、Unicode
描述
把选择单位的数量转换为活动编辑值内对应边界的零基 UTF-16 索引
fsuUTF16CodeUnit 下,数量在钳制到值长度后原样返回
fsuUnicodeCodePoint 或 fsuGraphemeCluster 下,该单位的边界表按需构建并查询,因此返回的索引从不错分代理对或字素簇,过大的数量被钳制到最后一个边界
零或更小的数量总是转换为索引零
声明
function SelectionUnitToUTF16(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
参数
| Index | 从值开头起跳过的完整选定单位数量,限制到最后一个可用边界 |
|---|---|
| IndexUnit | 计数所用的选定单位 |
返回值
返回所请求边界的 UTF-16 索引;计数超过可用边界时返回值长度,计数为零或更小时返回零
示例
// Unit 2 starts after the surrogate pair, at UTF-16 index 3
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUTF16 := Session.SelectionUnitToUTF16(2, fsuUnicodeCodePoint);
// CaretUTF16 = 3
另请参阅
SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession