SelectionUnitToUTF16
フォーム、インタラクション、Unicode
説明
選択単位の数を、アクティブな編集値内の対応する境界の0始まりUTF-16インデックスへ変換します
fsuUTF16CodeUnitでは、値の長さへの切り詰め後にカウントがそのまま返されます
fsuUnicodeCodePointやfsuGraphemeClusterでは、その単位の境界テーブルが必要時に構築されて検索されるため、返されるインデックスがサロゲートペアや書素クラスタを分割することはなく、過大なカウントは最後の境界へ切り詰められます
ゼロ以下のカウントは常にインデックスゼロへ変換されます
宣言
function SelectionUnitToUTF16(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
パラメータ
| Index | 値の先頭からスキップする完全な選択単位の数。利用可能な最後の境界に制限されます |
|---|---|
| IndexUnit | 数を表す選択単位 |
戻り値
要求された境界の UTF-16 インデックスを返します。数が利用可能な境界を超える場合は値の長さを、0 以下の場合は 0 を返します
例
// 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