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
| Index | Liczba pełnych jednostek zaznaczenia do pominięcia od początku wartości, przycinana do ostatniej dostępnej granicy |
|---|---|
| IndexUnit | Jednostka 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