SelectionUnitToUTF16

Formuláře, interakce, unicode

Popis

Převede počet jednotek výběru na index UTF-16 od nuly odpovídající hranice uvnitř aktivní editované hodnoty

S fsuUTF16CodeUnit se počet vrací beze změny po omezení na délku hodnoty

S fsuUnicodeCodePoint nebo fsuGraphemeCluster se tabulka hranic pro tu jednotku staví na vyžádání a vyhledává, takže vrácený index nikdy nerozdělí náhradní pár ani klastr grafémů a nadměrný počet se omezí na konečnou hranici

Počet nula a méně se vždy převede na index nula

Deklarace

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

Parametry

IndexPočet celých výběrových jednotek, které se mají přeskočit od začátku hodnoty, omezený na poslední dostupnou hranici
IndexUnitVýběrová jednotka, ve které je počet vyjádřen

Návratová hodnota

Vrací index požadované hranice v UTF-16, délku hodnoty, když počet přesahuje dostupné hranice, nebo nulu pro počty nula a méně

Příklad

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

Viz také

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession