掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ダイアログにフォーカスを残したまま検索するには? (ID:12001)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
現在 Delphi6 Personal を使用してメモ帳づくりをしています。そこで、 findDailogのヘルプにあったコードを試したところ、検索ダイアログのボタンを押すとフォーカスがメインとダイアログの間を行ったり来たりになり、連続で押すと画面がちらつきます。メモ帳のようにダイアログにフォーカスを残したまま、検索文字列を選択状態にする方法はないものでしょうか? 過去ログを検索したところ、"StringGlid"に関するものがあり試したところ検索ボタンを押しても変化なし、でした。 何か解決方法がありましたら、よろしくお願いします。 *- - - - - - - - 以下、ヘルプ・サンプルコード - - - - - - - - - -* ボタンをクリックすると[検索]ダイアログボックスが表示されます。「FInd what」テキストを入力して[次を検索]ボタンをクリックすると,TRichEdit 内で一致する最初の文字列が選択されます。 procedure TForm1.Button1Click(Sender: TObject); begin FindDialog1.Position := Point(RichEdit1.Left + RichEdit1.Width, RichEdit1.Top); FindDialog1.Execute; end; procedure TForm1.FindDialog1Find(Sender: TObject); var FoundAt: LongInt; StartPos, ToEnd: Integer; begin with RichEdit1 do begin { 検索は現在選択されている場所から開始される } { 何も選択されていない場合は,テキストの最初から開始される } if SelLength <> 0 then StartPos := SelStart + SelLength else StartPos := 0; { ToEnd は検索範囲の文字数を示す } ToEnd := Length(Text) - StartPos; FoundAt := FindText(FindDialog1.FindText, StartPos, ToEnd, [stMatchCase]); if FoundAt <> -1 then begin SetFocus; SelStart := FoundAt; SelLength := Length(FindDialog1.FindText); end; end; end;
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.