SetSelectionRange

Formulaires, interaction, Unicode

Description

Définit l'ancre et le curseur de la sélection d'édition du champ de formulaire active dans l'unité d'index demandée Les deux positions sont bornées indépendamment, de sorte qu'une ancre supérieure au curseur crée une sélection inversée tandis que les propriétés normalisées

Les deux positions sont bornées indépendamment ; une ancre supérieure au curseur crée donc une sélection inversée tandis que les propriétés normalisées SelectionStart et SelectionLength restent ordonnées

Les unités de point de code et de groupe de graphèmes se résolvent toujours à des frontières Unicode valides et ne peuvent pas diviser une paire de substitution, une séquence combinante ni un groupe d'emoji liés

Déclaration

function SetSelectionRange(AnchorIndex, CaretIndex: Integer;
  IndexUnit: TPDFlibFormSelectionUnit): Integer;

Paramètres

AnchorIndexBord fixe de la sélection dirigée en IndexUnit, borné à la valeur éditable
CaretIndexBord mobile de la sélection dirigée en IndexUnit, borné à la valeur éditable
IndexUnitfsuUTF16CodeUnit, fsuUnicodeCodePoint ou fsuGraphemeCluster

Valeur de retour

Retourne 1 lorsqu'une édition est active et que la sélection est stockée, sinon 0

Performances

Les tables de frontières de points de code et de graphèmes sont construites paresseusement pour la valeur d'édition courante, réutilisées par les opérations de sélection ultérieures et invalidées par SetEditValue

Exemple

if Session.BeginEdit(FieldIndex) = 1 then
begin
  Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
  Session.SetSelectionRange(1, 2, fsuUnicodeCodePoint);
end;

Voir aussi

GetSelectionRange, TPDFlibFormSession