Menulis Kondisi "Harap Tunggu..." Kotak Pesan

Contoh berikut ini menggambarkan cara menulis kotak pesan bersyarat yang muncul dan memperingatkan pengguna bahwa tugas latar belakang masih berjalan setiap kali pengguna mengaktifkan kontrol yang ditampilkan sebelum waktunya.

Contoh ini juga menggambarkan bagaimana SpawnWaitDialog ControlEvent umumnya dapat digunakan untuk melindungi kontrol yang memicu tindakan tergantung pada penyelesaian tugas latar belakang.

Dalam contoh ini, Dialog Pilihan yang berisi tiga kontrol tombol tekan berlabel Instal Sekarang, Berikutnya, dan Biaya Disk ditampilkan kepada pengguna selama proses penginstalan. Namun, alat penginstal juga melakukan tugas biaya ruang disk di latar belakang saat menampilkan kotak dialog ini. Penulis ingin melindungi tombol-tombol ini dari aktivasi dan ingin kotak pesan "Harap tunggu" muncul jika pengguna mengklik salah satu tombol sebelum biaya selesai. Penulis juga ingin kotak pesan ini berisi tombol Batal dan menghilang segera setelah tugas latar belakang selesai.

Untuk menampilkan kotak dialog yang meminta pengguna untuk menunggu sementara biaya disk latar belakang selesai

  1. Gunakan kapabilitas penulisan alat penginstal untuk menambahkan kotak dialog modal baru, bernama WaitForCosting, ke dalam tabel Dialog. Kotak dialog harus menampilkan string teks yang berbunyi "Harap tunggu sementara biaya ruang disk selesai."
  2. Tambahkan kontrol tombol tekan tunggal ke kotak dialog ini, berlabel Batal, dengan menulisnya ke dalam tabel Kontrol.
  3. Tautkan tombol Batalkan pendorongan ke ControlEvent yang menutup kotak dialog WaitForCosting dengan menulis EndDialog ControlEvent ke dalam tabel ControlEvent. Atur argumen peristiwa Kontrol EndDialog menjadi Keluar.
  4. Tautkan SpawnWaitDialog ControlEvent ke kontrol tombol tekan Instal Sekarang, Berikutnya, dan Biaya Disk yang ada yang ditampilkan dalam kotak Dialog Pilihan. Atur argumen ControlEvent ini dalam tabel ControlEvent menjadi kotak dialog WaitForCosting dan atur ekspresi di kolom Kondisi tabel menjadi: CostingComplete =1.