SetSelectionRange
フォーム、インタラクション、Unicode
説明
アクティブなフォームフィールド編集選択のアンカーとキャレットを、要求されたインデックス単位で設定します
2つの位置は独立して切り詰められるため、キャレットより大きいアンカーは逆方向の選択を作りますが、正規化されたSelectionStartとSelectionLengthプロパティは順序付いたままです
コードポイント単位と書素クラスタ単位は常に有効なUnicode境界へ解決され、サロゲートペア、結合シーケンス、結合絵文字クラスタを分割できません
宣言
function SetSelectionRange(AnchorIndex, CaretIndex: Integer;
IndexUnit: TPDFlibFormSelectionUnit): Integer;
パラメータ
| AnchorIndex | IndexUnit での方向付き選択の固定端。編集可能な値に制限されます |
|---|---|
| CaretIndex | IndexUnit での方向付き選択の移動端。編集可能な値に制限されます |
| IndexUnit | fsuUTF16CodeUnit、fsuUnicodeCodePoint、または fsuGraphemeCluster |
戻り値
編集がアクティブで選択が保存された場合は 1、それ以外は 0 を返します
パフォーマンス
コードポイントと書記素の境界テーブルは現在の編集値に対して遅延構築され、以降の選択操作で再利用され、SetEditValue で無効化されます
例
if Session.BeginEdit(FieldIndex) = 1 then
begin
Session.SetEditValue('A' + WideChar($D83D) + WideChar($DE00) + 'B');
Session.SetSelectionRange(1, 2, fsuUnicodeCodePoint);
end;