テキストの選択
コントロール内のテキストの操作 への移動
編集コントロール内のテキストの場合、テキストをクリップボードに送るには、まずそのテキストを選択する必要があります。編集コンポーネントには、選択されたテキストを強調表示する機能が組み込まれています。ユーザーがテキストを選択すると、そのテキストが強調表示されます。
選択されたテキストの処理によく使用されるプロパティの一覧を次の表に示します。
プロパティ | 説明 |
---|---|
SelText | コンポーネントで選択されたテキストを表す文字列が格納されます。 |
SelLength | 選択された文字列の長さが格納されます。 |
SelStart | 文字列の開始位置(編集コントロールのテキスト バッファの先頭を基準とする相対位置)が格納されます。 |
たとえば、以下の OnFind イベント ハンドラでは、検索ダイアログ コンポーネントの FindText プロパティで指定されているテキストをメモ コンポーネント内で検索します。テキストが見つかった場合は、Memo1 内での最初の出現箇所が選択されます。
procedure TForm1.FindDialog1Find(Sender: TObject);
var
I, J, PosReturn, SkipChars: Integer;
begin
for I := 0 to Memo1.Lines.Count do
begin
PosReturn := Pos(FindDialog1.FindText, Memo1.Lines[I]);
if PosReturn <> 0 then { 見つかった! }
begin
SkipChars := 0;
for J := 0 to I - 1 do
SkipChars := SkipChars + Length(Memo1.Lines[J]);
SkipChars := SkipChars + (I * 2);
SkipChars := SkipChars + PosReturn - 1;
Memo1.SetFocus;
Memo1.SelStart := SkipChars;
Memo1.SelLength := Length(FindDialog1.FindText);
Break;
end;
end;
end;