SelectionUnitToUTF16

Skjemaer, interaksjon, unicode

Beskrivelse

Konverterer et antall utvalgsenheter til den nullbaserte UTF-16-indeksen til den samsvarende grensen innenfor den aktive redigeringsverdien

Med fsuUTF16CodeUnit returneres antallet uendret etter begrensning til verdilengden

Med fsuUnicodeCodePoint eller fsuGraphemeCluster bygges grensetabellen for den enheten ved behov og slås opp, så den returnerte indeksen deler aldri et surrogatpar eller en grafemklynge, og et overdrevent antall begrenses til den endelige grensen

Et antall på null eller mindre konverteres alltid til indeks null

Deklarasjon

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

Parametere

IndexAntall komplette utvalgsenheter som skal hoppes over fra starten av verdien, avgrenset til den siste tilgjengelige grensen
IndexUnitUtvalgsenheten antallet er uttrykt i

Returverdi

Returnerer UTF-16-indeksen til den forespurte grensen, verdilengden når antallet overstiger de tilgjengelige grensene, eller null for antall på null eller mindre

Eksempel

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

Se også

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession