私は、標準の検索ダイアログがあります。Delphiで検索ダイアログを中断するにはどうすればいいですか?
私のプログラムはいくつかの非常に大きなファイルを処理することができ、そしてそのようなファイルにテキストを見つけることが10または20秒以上かかることがあります。 「次を検索」ボタンを押した後、カーソルを砂時計に変更します。私は、テキストが見つかったか見つからないと、標準のポインタに戻します。
私の問題は、ユーザーが検索をキャンセルすることを決定し、[キャンセル]ボタンを押して決定する可能性があるということです。キャンセルボタンを押してダイアログを閉じますが、テキストが見つかるか見つからないようになるまで、FindDialogFindルーチン内で検索が続けられます。
FindDialog.exeの終了時にブレークポイントを設定しましたが、FindDialogFindが完了するまでブレークポイントに達しません。
[キャンセル]ボタンが押されたため、FindDialogFindループを解除することができますか、またはキャンセルボタンを押したときに検索を停止する方法がありますか?
'FindDialog'の' OnClose'イベントでは、ブール型変数 'FStopSearch'を設定します。検索ルーチンでこのvarを頻繁にチェックし、設定されていれば検索を中止します。 –
@LURD - これはまさに私がやりたいことです。 Windows共通ダイアログのOnCloseイベントハンドラを設定するにはどうすればよいですか?これはDelphi形式ではありません。そして、あなたはコメントではなく答えとして私にこれを伝えてみませんか? – lkessler
ドロップされたFindDialogには3つのイベントがあります。 FindDialogCloseは正常に動作するはずです。ありがとう。何も登録しない時代があります。ごめんなさい。 – lkessler