GetVisualCaretOrder

폼, 상호 작용, 유니코드

설명

양방향 런을 해석한 뒤 활성 편집의 모든 캐럿 위치를 물리적 왼쪽에서 오른쪽 순서로 반환합니다

각 줄은 독립적으로 해석되며 반환된 모든 위치는 확장 그래펨 클러스터 경계에 맞춰집니다

혼합 방향 경계에서는 두 시각 캐럿 위치가 물리적으로 다르므로 같은 논리 인덱스가 인접하지 않은 여러 슬롯에 나타날 수 있습니다

요청한 인덱스 단위는 보고되는 논리 인덱스만 바꾸며 시각 순서는 바꾸지 않습니다

선언

function GetVisualCaretOrder(
  IndexUnit: TPDFlibFormSelectionUnit;
  out CaretIndices: TPDFlibFormCaretIndices): Integer;

매개변수

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint 또는 fsuGraphemeCluster
CaretIndices시각 텍스트 왼쪽 가장자리부터 오른쪽 가장자리까지 정렬된 논리 캐럿 인덱스를 받습니다

반환 값

시각 캐럿 슬롯 수를 반환하며, 활성 편집이 없거나 인덱스 단위가 잘못되면 0입니다

성능

그래핌 경계와 해석된 시각 순서는 현재 편집 값과 방향에 대해 캐시되며 런 경계 매핑에는 이진 탐색이 사용됩니다

예제

var
  Carets: TPDFlibFormCaretIndices;
begin
  if Session.GetVisualCaretOrder(fsuGraphemeCluster, Carets) > 0 then
    FirstVisualCaret := Carets[0];
end;

참고 항목

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession