SetSelectionRange

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

説明

アクティブなフォームフィールド編集選択のアンカーとキャレットを、要求されたインデックス単位で設定します

2つの位置は独立して切り詰められるため、キャレットより大きいアンカーは逆方向の選択を作りますが、正規化されたSelectionStartとSelectionLengthプロパティは順序付いたままです

コードポイント単位と書素クラスタ単位は常に有効なUnicode境界へ解決され、サロゲートペア、結合シーケンス、結合絵文字クラスタを分割できません

宣言

function SetSelectionRange(AnchorIndex, CaretIndex: Integer;
  IndexUnit: TPDFlibFormSelectionUnit): Integer;

パラメータ

AnchorIndexIndexUnit での方向付き選択の固定端。編集可能な値に制限されます
CaretIndexIndexUnit での方向付き選択の移動端。編集可能な値に制限されます
IndexUnitfsuUTF16CodeUnit、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;

関連項目

GetSelectionRange, TPDFlibFormSession