SelectionUnitToUTF16

Formulare, Interaktion, Unicode

Beschreibung

Konvertiert eine Anzahl von Auswahleinheiten in den 0-basierten UTF-16-Index der passenden Grenze innerhalb des aktiven Bearbeitungswerts Bei

fsuUTF16CodeUnit

Mit fsuUnicodeCodePoint oder fsuGraphemeCluster wird die Grenztabelle für diese Einheit bei Bedarf aufgebaut und nachgeschlagen, sodass der zurückgegebene Index nie ein Surrogatpaar oder einen Graphemhaufen teilt und eine übermäßige Anzahl auf die endgültige Grenze begrenzt wird

Eine Anzahl von null oder weniger wird immer in den Index null umgewandelt

Deklaration

function SelectionUnitToUTF16(Index: Integer;
  IndexUnit: TPDFlibFormSelectionUnit): Integer;

Parameter

IndexAnzahl vollständiger Auswahleinheiten, die vom Wertanfang übersprungen werden sollen, begrenzt auf die letzte verfügbare Grenze
IndexUnitAuswahleinheit, in der die Anzahl ausgedrückt ist

Rückgabewert

Gibt den UTF-16-Index der angeforderten Grenze zurück, die Wertlänge, wenn die Anzahl die verfügbaren Grenzen übersteigt, oder null bei Anzahlen von null oder weniger

Beispiel

// Unit 2 starts after the surrogate pair, at UTF-16 index 3
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUTF16 := Session.SelectionUnitToUTF16(2, fsuUnicodeCodePoint);
// CaretUTF16 = 3

Siehe auch

SelectionUTF16ToUnit, SetSelectionRange, GetVisualCaretOrder, TPDFlibFormSelectionUnit, TPDFlibFormSession