SelectionUnitToUTF16

Formularze, interakcja, Unicode

Opis

Przelicza liczbę jednostek zaznaczenia na indeks UTF-16 o podstawie zero pasującej granicy w wartości aktywnej edycji

Przy fsuUTF16CodeUnit liczba jest zwracana bez zmian po docięciu do długości wartości

Przy fsuUnicodeCodePoint albo fsuGraphemeCluster tabela granic dla tej jednostki jest budowana na żądanie i odpytywana, więc zwracany indeks nigdy nie przecina pary surrogatów ani klastra grafemów, a nadmierna liczba docina się do ostatniej granicy

Liczba zero albo mniejsza zawsze przelicza się na indeks zero

Deklaracja

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

Parametry

IndexLiczba pełnych jednostek zaznaczenia do pominięcia od początku wartości, przycinana do ostatniej dostępnej granicy
IndexUnitJednostka zaznaczenia, w której wyrażona jest liczba

Wartość zwracana

Zwraca indeks UTF-16 żądanej granicy, długość wartości, gdy liczba przekracza dostępne granice, albo zero dla liczb zero lub mniejszych

Przykład

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

Zobacz również

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession