SelectionUnitToUTF16

폼, 상호 작용, 유니코드

설명

선택 단위 개수를 활성 편집 값 안의 해당 경계의 0기반 UTF-16 인덱스로 변환합니다

fsuUTF16CodeUnit에서는 값 길이로 잘린 뒤 개수가 그대로 반환됩니다

fsuUnicodeCodePoint나 fsuGraphemeCluster에서는 해당 단위의 경계 테이블이 필요할 때 만들어 조회되므로, 반환된 인덱스가 서러게이트 쌍이나 그래펨 클러스터를 나눌 일이 없고 과도한 개수는 마지막 경계로 잘립니다

0 이하 개수는 언제나 인덱스 0으로 변환됩니다

선언

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

매개변수

Index값의 시작부터 건너뛸 완전한 선택 단위 수이며 마지막 사용 가능한 경계로 제한됩니다
IndexUnit개수가 표현되는 선택 단위입니다

반환값

요청된 경계의 UTF-16 인덱스를 반환하며, 개수가 사용 가능한 경계를 초과하면 값 길이를, 0 이하의 개수에 대해서는 0을 반환합니다

예제

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

참조

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession