GetVisualCaretOrder

Moduli, interazione, Unicode

Descrizione

Restituisce ogni posizione del caret della modifica attiva in ordine fisico da sinistra a destra dopo la risoluzione dei segmenti bidirezionali

Ogni riga viene risolta indipendentemente e ogni posizione restituita è allineata a un confine di cluster di grafemi estesi

Lo stesso indice logico può apparire in più di uno slot non adiacente a un confine di direzione mista, perché le due posizioni visive del caret sono fisicamente distinte

L'unità di indice richiesta cambia solo gli indici logici riportati e non cambia l'ordine visivo

Dichiarazione

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

Parametri

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint o fsuGraphemeCluster
CaretIndicesRiceve gli indici logici del cursore ordinati dal bordo sinistro del testo visivo al bordo destro

Valore restituito

Restituisce il numero di slot visivi del cursore, oppure zero quando nessuna modifica è attiva o l'unità di indice non è valida

Prestazioni

I confini dei grafemi e l'ordine visivo risolto sono memorizzati nella cache per il valore di modifica e la direzione correnti, con ricerche binarie usate per mappare i confini delle sequenze

Esempio

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

Vedere anche

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession