SelectionUTF16ToUnit

Formulare, Interaktion, Unicode

Beschreibung

Konvertiert eine 0-basierte UTF-16-Position innerhalb des aktiven Bearbeitungswerts in eine Anzahl vollständiger Auswahleinheiten Bei

fsuUTF16CodeUnit

Mit fsuUnicodeCodePoint oder fsuGraphemeCluster wird die Grenztabelle für diese Einheit bei Bedarf aufgebaut und durchsucht, sodass eine Position innerhalb eines Surrogatpaars auf ihren umschließenden Codepunkt und eine Position innerhalb eines Haufens auf die vorherige Haufengrenze abgebildet wird

Grenzentabellen werden für den aktuellen Bearbeitungswert zwischengespeichert und bei jeder Wertänderung verworfen

Deklaration

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

Parameter

Index0-basierte UTF-16-Position, begrenzt auf den Bereich 0 bis zur aktuellen Wertlänge
IndexUnitAuswahleinheit, in der das Ergebnis gezählt wird

Rückgabewert

Gibt die Anzahl der der UTF-16-Position vorausgehenden vollständigen Codepunkte oder Graphem-Cluster zurück, bzw. den begrenzten Index selbst bei fsuUTF16CodeUnit

Beispiel

// A surrogate pair counts as one code point unit
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
CaretUnits := Session.SelectionUTF16ToUnit(3, fsuUnicodeCodePoint);
// CaretUnits = 2

Siehe auch

SelectionUnitToUTF16, GetSelectionRange, SetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession