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

Index0-based UTF-16-positie, begrensd tot het bereik 0 tot en met de huidige waardelengte
IndexUnitSelectie-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