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
| IndexUnit | fsuUTF16CodeUnit, fsuUnicodeCodePoint nebo fsuGraphemeCluster |
|---|---|
| CaretIndices | Př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