SelectionUTF16ToUnit
Skjemaer, interaksjon, unicode
Beskrivelse
Konverterer en nullbasert UTF-16-posisjon innenfor den aktive redigeringsverdien til et antall komplette utvalgsenheter
Med fsuUTF16CodeUnit returneres indeksen uendret etter begrensning
Med fsuUnicodeCodePoint eller fsuGraphemeCluster bygges grensetabellen for den enheten ved behov og søkes, så en posisjon inne i et surrogatpar kartlegges til kodepunktet som inneholder den, og en posisjon inne i en klynge kartlegges til den foregående klyngegrensen
Grensetabeller hurtiglagres for nåværende redigeringsverdi og forkastes når den verdien endres
Deklarasjon
function SelectionUTF16ToUnit(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
Parametere
| Index | Nullbasert UTF-16-posisjon, avgrenset til området 0 til og med gjeldende verdilengde |
|---|---|
| IndexUnit | Utvalgsenheten resultatet telles i |
Returverdi
Returnerer antallet komplette kodepunkter eller grafemklynger som går forut for UTF-16-posisjonen, eller selve den avgrensede indeksen for fsuUTF16CodeUnit
Eksempel
// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2
Se også
SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession