SelectionUTF16ToUnit
Formulaires, interaction, Unicode
Description
Convertit une position UTF-16 à base zéro au sein de la valeur de l'édition active en un nombre d'unités de sélection complètes Avec
fsuUTF16CodeUnit
Avec fsuUnicodeCodePoint ou fsuGraphemeCluster, la table de frontières pour cette unité est construite à la demande et parcourue ; une position dans une paire de substitution se mappe donc à son point de code contenant et une position dans un groupe se mappe à la frontière du groupe précédent
Les tables de frontières sont mises en cache pour la valeur d'édition actuelle et abandonnées dès que cette valeur change
Déclaration
function SelectionUTF16ToUnit(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
Paramètres
| Index | Position UTF-16 à base zéro, bornée à la plage 0 jusqu'à la longueur de la valeur courante |
|---|---|
| IndexUnit | Unité de sélection dans laquelle le résultat est compté |
Valeur de retour
Retourne le nombre de points de code ou de clusters de graphèmes complets qui précèdent la position UTF-16, ou l'index borné lui-même pour fsuUTF16CodeUnit
Exemple
// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2
Voir aussi
SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession