GetVisualCaretOrder

Formularer, interaktion, Unicode

Beskrivelse

Returnerer hver caretposition for den aktive redigering i fysisk venstre-mod-højre-rækkefølge efter opløsning af bidirektionelle runs Hver linje opløses uafhængigt, og hver returneret position er justeret til en udvidet grafemklyngegrænse Samme logiske indeks kan optræde i mere end én ikke-tilstødende slot ved en blandet retninggrænse, fordi de to visuelle caretpositioner er fysisk forskellige Den ønskede indeksenhed ændrer kun de rapporterede logiske indekser og ændrer ikke den visuelle rækkefølge

Deklaration

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

Parametre

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint eller fsuGraphemeCluster
CaretIndicesModtager logiske caretindekser ordnet fra den visuelle teksts venstre kant til højre kant

Returværdi

Returnerer antallet af visuelle caretslots eller nul, når ingen redigering er aktiv, eller indeksenheden er ugyldig

Ydeevne

Grafemgrænser og opløst visuel rækkefølge caches for den aktuelle redigeringsværdi og retning, med binære søgninger brugt til at afbilde rungrænser

Eksempel

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

Se også

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession