GetVisualCaretOrder
Formulaires, interaction, Unicode
Description
Renvoie chaque position du curseur de l'édition active en ordre physique gauche-à-droite après résolution des segments bidirectionnels
Chaque ligne est résolue indépendamment et toute position renvoyée est alignée sur une frontière de groupe de graphèmes étendus
Le même index logique peut apparaître dans plus d'un emplacement non adjacent à une limite de direction mixte, car les deux positions visuelles du curseur sont physiquement distinctes
L'unité d'index demandée ne change que les index logiques signalés et ne change pas l'ordre visuel
Déclaration
function GetVisualCaretOrder(
IndexUnit: TPDFlibFormSelectionUnit;
out CaretIndices: TPDFlibFormCaretIndices): Integer;
Paramètres
| IndexUnit | fsuUTF16CodeUnit, fsuUnicodeCodePoint ou fsuGraphemeCluster |
|---|---|
| CaretIndices | Reçoit les index logiques du curseur ordonnés du bord gauche du texte visuel au bord droit |
Valeur de retour
Renvoie le nombre d'emplacements visuels du curseur, ou zéro lorsqu'aucune édition n'est active ou que l'unité d'index est invalide
Performances
Les frontières de graphèmes et l'ordre visuel résolu sont mis en cache pour la valeur d'édition et la direction courantes, avec des recherches binaires utilisées pour cartographier les frontières de segments
Exemple
var
Carets: TPDFlibFormCaretIndices;
begin
if Session.GetVisualCaretOrder(fsuGraphemeCluster, Carets) > 0 then
FirstVisualCaret := Carets[0];
end;
Voir aussi
MoveVisualCaret, SetTextDirection, GetSelectionRange, TPDFlibFormSession