GetVisualCaretOrder

表單、互動、Unicode

描述

解析雙向 run 後,以實體由左至右順序傳回作用中編輯的每個游標位置

每行獨立解析,每個傳回位置都對齊擴展字位叢集邊界

在混合方向邊界上,同一邏輯索引可能出現在多個不相鄰的槽,因為兩個視覺游標位置在實體上是不同的

所請求的索引單位只改變回報的邏輯索引,不改變視覺順序

宣告

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

參數

IndexUnitfsuUTF16CodeUnit、fsuUnicodeCodePoint 或 fsuGraphemeCluster
CaretIndices接收從視覺文字左緣到右緣排序的邏輯插入點索引

傳回值

傳回視覺插入點槽位數;沒有作用中的編輯或索引單位無效時為零

效能

字素邊界與解析後的視覺順序會為目前的編輯值與方向快取,並使用二分搜尋對應執行段邊界

範例

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

另請參閱

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession