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 conteo excesivo se acota al límite final

Un conteo 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 se omitirán desde el inicio del valor, acotado 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 menos

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