SelectionUTF16ToUnit
폼, 상호 작용, 유니코드
설명
활성 편집 값 안의 0기반 UTF-16 위치를 완전한 선택 단위 개수로 변환합니다
fsuUTF16CodeUnit에서는 잘린 뒤 인덱스가 그대로 반환됩니다
fsuUnicodeCodePoint나 fsuGraphemeCluster에서는 해당 단위의 경계 테이블이 필요할 때 만들어져 탐색되므로, 서러게이트 쌍 안의 위치는 그것을 담는 코드 포인트로, 클러스터 안의 위치는 앞선 클러스터 경계로 매핑됩니다
경계 테이블은 현재 편집 값에 대해 캐시되며 그 값이 바뀔 때마다 버려집니다
선언
function SelectionUTF16ToUnit(Index: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
매개변수
| Index | 0부터 시작하는 UTF-16 위치이며 0부터 현재 값 길이까지의 범위로 제한됩니다 |
|---|---|
| IndexUnit | 결과가 셈해지는 선택 단위입니다 |
반환값
UTF-16 위치 앞에 있는 완전한 코드 포인트나 자소 클러스터 수를 반환하며, fsuUTF16CodeUnit에서는 제한된 인덱스 자체를 반환합니다
예제
// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2
참조
SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession