SelectionUnitToUTF16

Formularios, interacción, Unicode

Descripción

Convierte un recuento de unidades de selección en el índice UTF-16, con base cero, del límite correspondiente dentro del valor de la edición activa Con

fsuUTF16CodeUnit

Con fsuUnicodeCodePoint o fsuGraphemeCluster, la tabla de límites para esa unidad se construye a demanda y se consulta, así que el índice devuelto nunca divide un par sustituto ni un clúster de grafemas, y un recuento excesivo se acota al límite final

Un recuento de cero o menos siempre se convierte en el índice cero

Declaración

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

Parámetros

IndexNúmero de unidades de selección completas que saltar desde el principio del valor, ajustado al último límite disponible
IndexUnitUnidad de selección en la que se expresa el recuento

Valor devuelto

Devuelve el índice UTF-16 del límite solicitado, la longitud del valor cuando el recuento excede los límites disponibles, o cero para recuentos de cero o menores

Ejemplo

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

Véase también

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession