SelectionUnitToUTF16

表單、互動、Unicode

描述

把選取單位數量轉換為作用中編輯值內對應邊界的 0-based 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