SelectionUTF16ToUnit
Formulieren, interactie, Unicode
Beschrijving
Zet een 0-based UTF-16-positie binnen de actieve bewerkingswaarde om naar een aantal volledige selectie-eenheden Met
fsuUTF16CodeUnit
Met fsuUnicodeCodePoint of fsuGraphemeCluster wordt de grenstabel van die eenheid op aanvraag opgebouwd en doorzocht, zodat een positie binnen een surrogaatpaar op het bevattende codepunt uitkomt en een positie binnen een cluster op de grens van het voorafgaande cluster
Grenstabellen worden gecacht voor de huidige bewerkingswaarde en verworpen zodra die waarde verandert
Declaratie
function SelectionUTF16ToUnit(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
Syntaxis
| Index | 0-based UTF-16-positie, begrensd tot het bereik 0 tot en met de huidige waardelengte |
|---|---|
| IndexUnit | Selectie-eenheid waarin het resultaat wordt geteld |
Retourwaarde
Geeft het aantal volledige codepunten of grafeemclusters terug dat vóór de UTF-16-positie ligt, of de begrensde index zelf voor fsuUTF16CodeUnit
Voorbeeld
// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2
Zie ook
SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession