EnsureVisualCaretOrder
フォーム、インタラクション、Unicode
説明
TPDFlibFormSessionの内部ヘルパーで、視覚キャレット移動が使うキャッシュ済みの物理キャレットスロット順を計算します
現在の編集値と解決済みテキスト方向に対する有効なキャッシュは再利用され、なければ書素境界テーブルから順序が再構築されます
値はLF、CR、CRLFの改行で行へ分割され、各行は解決された基本方向のもとで双方向ランへ解決されます。ラン解決に失敗した場合は単一ランへフォールバックします
ランの埋め込みレベルは0から125の範囲へ切り詰められ、視覚ラン順は解決されたレベルに従います
書素境界インデックスはランをまたいで物理的な左から右の順で追加されます。左から右のランでは前向きに、右から左のランでは後ろ向きに追加されるため、混合方向境界の論理インデックスは2つの異なるスロットを占めることがあります
連続する重複スロットは統合され、改行位置は独自のスロットになり、空の結果はスロット0単独へフォールバックし、再構築は視覚スロット位置を-1へ戻します
宣言
procedure EnsureVisualCaretOrder;
関連項目
InvalidateVisualCaretOrder, GetVisualCaretOrder, MoveVisualCaret, GetResolvedTextDirection, EnsureSelectionBoundaries, TPDFlibFormTextDirection, TPDFlibFormSession