SelectionUTF16ToUnit

Moduli, interazione, Unicode

Descrizione

Converte una posizione UTF-16 a base zero all'interno del valore della modifica attiva in un conteggio di unità di selezione complete Con

fsuUTF16CodeUnit

Con fsuUnicodeCodePoint o fsuGraphemeCluster, la tabella di confini per quell'unità viene costruita a richiesta e cercata, così una posizione dentro una coppia surrogata si mappa al suo punto di codice contenente e una posizione dentro un cluster si mappa al confine del cluster precedente

Le tabelle dei confini vengono memorizzate in cache per il valore di modifica corrente e scartate ogni volta che il valore cambia

Dichiarazione

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

Parametri

IndexPosizione UTF-16 a base zero, limitata all'intervallo che va da 0 alla lunghezza corrente del valore
IndexUnitUnità di selezione in cui il risultato viene conteggiato

Valore restituito

Restituisce il numero di punti di codice o cluster di grafemi completi che precedono la posizione UTF-16, oppure l'indice limitato stesso per fsuUTF16CodeUnit

Esempio

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

Vedere anche

SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession