GetVisualCaretOrder

Formulär, interaktion, Unicode

Beskrivning

Returnerar varje textmarkörposition för den aktiva redigeringen i fysisk vänster-till-höger-ordning efter att dubbelriktade körningar lösts upp

Varje rad löses oberoende, och varje returnerad position ligger på en utökad grafemklustergräns

Samma logiska index kan förekomma i mer än en icke angränsande plats vid en blandad-riktning-gräns, eftersom de två visuella markörpositionerna är fysiskt olika

Den begärda indexenheten ändrar bara de rapporterade logiska indexen och ändrar inte den visuella ordningen

Deklaration

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

Parametrar

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint eller fsuGraphemeCluster
CaretIndicesTar emot logiska textmarkörindex ordnade från den visuella textens vänstra kant till högra kanten

Returvärde

Returnerar antalet visuella textmarkörsplatser, eller noll när ingen redigering är aktiv eller indexenheten är ogiltig

Prestanda

Grafemgränser och löst visuell ordning cachas för aktuellt redigeringsvärde och riktning, med binärsökningar för att mappa körningsgränser

Exempel

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

Se även

MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession