1

メインの VCL スレッドで、実行に数分かかるスクリプト (データベースの復元スクリプト) を実行します。

ユーザーが UI をクリックした場合、フォームのキャプションに「応答していません」と表示されます。

Application.ProcessMessages動作しません。

「マーキープログレスバー」を追加し、「応答なし」を持たないようにしたいと思います。

スレッドで Db スクリプトを実行する唯一のソリューションですか?

ありがとう。

4

2 に答える 2

1

David のスレッド ソリューションが最良の回答であり、私はそれに投票しました。ただし、完全を期すために、場合によっては代替手段があります。データベース エンジンに OnProgress 通知 (コールバック) がある場合、これを使用してステータス/進行状況を更新できます。このコンテキストでは、ProcessMessages の呼び出しが機能します。これで十分な場合もありますが、「進行状況」ダイアログを表示していて、完了するまでユーザーに何もしてほしくない場合など、非常に単純な状況に限定されます。

于 2013-06-14T13:24:26.833 に答える