SelectionUTF16ToUnit
Formularze, interakcja, Unicode
Opis
Przelicza pozycję UTF-16 o podstawie zero w wartości aktywnej edycji na liczbę kompletnych jednostek zaznaczenia
Przy fsuUTF16CodeUnit indeks jest zwracany bez zmian po docięciu
Przy fsuUnicodeCodePoint albo fsuGraphemeCluster tabela granic dla tej jednostki jest budowana na żądanie i przeszukiwana, więc pozycja wewnątrz pary surrogatów mapuje się na jej obejmujący punkt kodowy, a pozycja wewnątrz klastra na poprzedzającą granicę klastra
Tabele granic są podręczne dla bieżącej wartości edycji i porzucane przy każdej zmianie tej wartości
Deklaracja
function SelectionUTF16ToUnit(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
Parametry
| Index | Pozycja UTF-16 liczona od zera, przycinana do zakresu od 0 do bieżącej długości wartości |
|---|---|
| IndexUnit | Jednostka zaznaczenia, w której wyliczany jest wynik |
Wartość zwracana
Zwraca liczbę pełnych punktów kodowych lub grafemów poprzedzających pozycję UTF-16 albo sam przycięty indeks dla fsuUTF16CodeUnit
Przykład
// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2
Zobacz również
SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession