EnsureSelectionBoundaries

フォーム、インタラクション、Unicode

説明

TPDFlibFormSessionの内部ヘルパーで、現在の編集値に対するUnicode境界テーブルを構築しキャッシュします

fsuUnicodeCodePointではUTF-16値を走査してコードポイントごとに1つの境界を記録します。有効なサロゲートペアは1つの補助コードポイントとして、ペアでないサロゲートは独立したコードポイントとして扱われます

fsuGraphemeClusterでは拡張書素クラスタ境界を構築するため、結合シーケンスと結合絵文字は分割されません

各テーブルはゼロの境界で始まり、ゼロ始まりのUTF-16オフセットを保存します。空でないキャッシュ済みテーブルはInvalidateSelectionBoundariesがクリアするまで再利用されます

テーブルはUTF-16コードユニット、Unicodeコードポイント、書素クラスタ間のすべてのインデックス変換を支えます

宣言

procedure EnsureSelectionBoundaries(
  IndexUnit: TPDFlibFormSelectionUnit);

パラメータ

IndexUnit要求された境界テーブル。fsuUnicodeCodePointまたはfsuGraphemeCluster

例

Session.SetSelectionRange(1, 2, fsuUnicodeCodePoint);
Session.GetSelectionRange(fsuUTF16CodeUnit, Sel);

関連項目

InvalidateSelectionBoundaries, EnsureVisualCaretOrder, ClampTextLength, SetSelectionRange, GetSelectionRange, TPDFlibFormSelectionUnit, TPDFlibFormSession