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
| IndexUnit | fsuUTF16CodeUnit, fsuUnicodeCodePoint eller fsuGraphemeCluster |
|---|---|
| CaretIndices | Tar 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