GetVisualCaretOrder

Formuláře, interakce, Unicode

Popis

Vrací každou pozici kurzoru aktivní úpravy ve fyzickém pořadí zleva doprava po rozlišení obousměrných průběhů

Každý řádek se rozliší nezávisle a každá vrácená pozice je zarovnána na hranici rozšířeného klastru grafémů

Týž logický index se může objevit ve více než jednom nesousedním slotu na hranici smíšeného směru, protože dvě vizuální pozice kurzoru jsou fyzicky odlišné

Požadovaná jednotka indexu mění jen hlášené logické indexy a nemění vizuální uspořádání

Deklarace

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

Parametry

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint nebo fsuGraphemeCluster
CaretIndicesPřijímá logické indexy kurzoru uspořádané od levého okraje vizuálního textu k pravému okraji

Návratová hodnota

Vrací počet vizuálních slotů kurzoru, nebo nulu, když žádná editace není aktivní nebo je jednotka indexů neplatná

Výkon

Grafémové hranice i vyřešené vizuální pořadí se cacheují pro aktuální hodnotu a směr editace, k mapování hranic úseků se používá binární vyhledávání

Příklad

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

Viz také

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession