条件付き "お待ちください..." メッセージ ボックスの作成
次の例では、ポップアップ表示される条件付きメッセージ ボックスを作成し、ユーザーが表示されたコントロールを途中でアクティブ化するたびにバックグラウンド タスクがまだ実行されていることをユーザーに警告する方法について説明します。
この例では、通常、SpawnWaitDialog ControlEvent を使うことで可能な、バックグラウンド タスクの完了に応じてアクションをトリガーするコントロールを保護する方法についても示します。
この例では、[今すぐインストール]、[次へ]、[ディスク領域計算] という 3 つのプッシュ ボタン コントロールを含む選択ダイアログが、インストール プロセス中にユーザーに表示されます。 ただし、インストーラーでは、このダイアログ ボックスを表示している間、バックグラウンドでディスク領域計算タスクも実行しています。 作成者は、これらのボタンをアクティブ化から保護したいと考えており、領域計算が完了する前にユーザーがいずれかのボタンをクリックすると、"お待ちください" というメッセージ ボックスがポップアップ表示されます。 また、このメッセージ ボックスには [キャンセル] ボタンがあり、バックグラウンド タスクが完了すると同時に消えるようにする必要があります。
バックグラウンドのディスク領域計算が完了するまでユーザーに待つように求めるダイアログ ボックスを表示するには
- インストーラーの作成機能を使って、WaitForCosting という新しいモーダル ダイアログ ボックスを Dialog テーブルに追加します。 このダイアログ ボックスには、"ディスク領域計算が完了するまでお待ちください" というテキスト文字列が表示されます。
- このダイアログ ボックスに、[キャンセル] という 1 つのプッシュ ボタン コントロールを Control テーブルに作成して追加します。
- EndDialog ControlEvent を ControlEvent テーブルに作成して、WaitForCosting ダイアログ ボックスを閉じる ControlEvent に [キャンセル] プッシュ ボタンをリンクします。 EndDialog Control イベントの引数を Exit に設定します。
- SpawnWaitDialog ControlEvent を選択ダイアログ ボックスに表示されている既存の [今すぐインストール]、[次へ]、[ディスク領域計算] の各プッシュ ボタン コントロールにリンクします。 ControlEvent テーブルのこの ControlEvent の引数を WaitForCosting ダイアログ ボックスに設定し、テーブルの Condition 列の式を CostingComplete =1 に設定します。