SelectionUnitToUTF16

Formulaires, interaction, Unicode

Description

Convertit un nombre d'unités de sélection en l'index UTF-16 à base zéro de la frontière correspondante au sein de la valeur de l'édition active Avec

fsuUTF16CodeUnit

Avec fsuUnicodeCodePoint ou fsuGraphemeCluster, la table de frontières pour cette unité est construite à la demande et consultée ; l'index renvoyé ne divise donc jamais une paire de substitution ni un groupe de graphèmes, et un comptage excessif est borné à la frontière finale

Un comptage de zéro ou moins est toujours converti en index zéro

Déclaration

function SelectionUnitToUTF16(Index: Integer;
  IndexUnit: TPDFlibFormSelectionUnit): Integer;

Paramètres

IndexNombre d'unités de sélection complètes à sauter depuis le début de la valeur, borné à la dernière frontière disponible
IndexUnitUnité de sélection dans laquelle le nombre est exprimé

Valeur de retour

Retourne l'index UTF-16 de la frontière demandée, la longueur de la valeur lorsque le nombre dépasse les frontières disponibles, ou zéro pour les nombres inférieurs ou égaux à zéro

Exemple

// 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

Voir aussi

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession