SelectionUTF16ToUnit

Formularios, interacción, Unicode

Descripción

Convierte una posición UTF-16 con base cero dentro del valor de la edición activa en un recuento de unidades de selección completas Con

fsuUTF16CodeUnit

Con fsuUnicodeCodePoint o fsuGraphemeCluster, la tabla de límites para esa unidad se construye a demanda y se busca, así que una posición dentro de un par sustituto se mapea a su punto de código contenedor y una posición dentro de un clúster se mapea al límite del clúster precedente

Las tablas de límites se almacenan en caché para el valor de edición actual y se descartan cada vez que ese valor cambia

Declaración

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

Parámetros

IndexPosición UTF-16 con base cero, acotada al rango de 0 a la longitud del valor actual
IndexUnitUnidad de selección en la que se cuenta el resultado

Valor devuelto

Devuelve el número de puntos de código o clústeres de grafemas completos que preceden a la posición UTF-16, o el índice acotado para fsuUTF16CodeUnit

Ejemplo

// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2

Véase también

SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession