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