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