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
| Index | Posición UTF-16 con base cero, ajustada al rango de 0 a la longitud del valor actual |
|---|---|
| IndexUnit | Unidad 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 propio índice ajustado 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