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

IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint ou fsuGraphemeCluster
CaretIndicesReç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