Saya kadang-kadang mendapatkan kesalahan yang diberikan Word ketika mencoba untuk menutup dokumen dengan kotak dialog lain terbuka tetapi saya tidak pernah bisa mencari tahu mengapa itu terjadi.
Saya kadang-kadang mendapatkan kesalahan yang diberikan Word ketika mencoba untuk menutup dokumen dengan kotak dialog lain terbuka tetapi saya tidak pernah bisa mencari tahu mengapa itu terjadi.
Jawaban:
Karena sebagian besar kotak dialog dianggap " modal " yang berarti bahwa kontrol tidak melewati kembali ke program utama, atau memanggil wadah, sampai dialog itu sendiri ditutup. Ini adalah dengan desain dan programmer memiliki opsi untuk membuat modal window atau non-modal. Biasanya, sebuah jendela didefinisikan sebagai modal jika program utama tidak dapat atau tidak boleh dilanjutkan sampai dialog yang dibuka ditangani - baik melalui seleksi (Oke) atau dibatalkan (Batal).
Kotak dialog mungkin mengatakan sesuatu seperti:
Anda telah membuat perubahan pada dokumen Anda, apakah Anda ingin menyimpannya? (Ya Tidak)
Tidak ada jawaban benar yang jelas di sini. Anda mungkin telah secara tidak sengaja merusak dokumen Anda (misalnya, kucing berjalan di atas keyboard) dalam hal ini jawabannya adalah "Tidak", atau Anda mungkin telah menghabiskan berjam-jam mengetik perubahan yang dalam kasus ini jawabannya adalah "Ya".
Hal paling aman untuk dilakukan Word adalah menolak untuk menutup sampai Anda menjawab pertanyaan.
Karena program dirancang dengan cara ini, untuk menghindari tindakan yang mungkin tidak diinginkan pengguna.
Biasanya, kotak dialog ditampilkan ketika program membutuhkan pengguna untuk memandu beberapa tindakan. Menutup dokumen yang belum disimpan adalah contoh yang bagus: dialog menawarkan untuk menyimpan perubahan, membuang perubahan atau membatalkan penutupan dan kembali ke pengeditan. Program ini sengaja menolak untuk menutup tanpa menjawab pertanyaan ini karena penutupan akan memaksa BEBERAPA tindakan yang harus diambil. Program tidak dapat memutuskan sendiri misalnya. buang hasil edit terbaru, atau sebaliknya, timpa versi yang benar dengan pengetikan cat-on-the-keyboard.
Bahkan jika kami mempertimbangkan dialog yang tidak terkait dengan penutupan, biasanya berarti bahwa beberapa proses sedang berlangsung, belum selesai, dan pengguna harus memutuskan ke mana harus pergi. Itu tidak dapat "dibatalkan", karena dibatalkan juga merupakan tindakan yang mungkin tidak dimaksudkan oleh pengguna.
Ini juga menyederhanakan desain program, karena pembuatnya tidak harus membuat "jalan keluar yang aman" dari setiap fungsi.
Saat ini, sebagian besar dialog bukan modal dalam arti teknis (program tetap bertanggung jawab), tetapi masih lebih mudah untuk membuatnya menjadi modal dalam pengertian yang lebih luas tentang alur logika program.
Saya bisa saja salah, tetapi saya curiga ini kembali ke perilaku kontrol dialog umum yang lama.
Beberapa dari mereka yang terbunuh secara tiba-tiba tanpa kembali memiliki efek samping yang tidak menyenangkan, kadang-kadang bahkan di luar program yang sudah mati dan tidak ada cara untuk melarikan diri dari mereka dengan sopan dalam semua kasus jika mereka melakukan sesuatu pada tingkat sistem yang memerlukan input pengguna.
Mengenai mengapa masih seperti itu, orang menjadi terbiasa, pengembang diprogram dengan asumsi itu selama beberapa dekade dan yang lebih penting non-programmer menggunakan dialog-dialog itu dalam skrip otomatisasi kantor mereka dan Microsoft tidak lain adalah penganut ketat terhadap tujuan kompatibilitas mundur. .
Di balik tirai, program (dalam kasus kami ini adalah MS Word) membuat "pengendali event klik tombol X" saat membuat jendela. Ketika ada jendela dialog, Word mencatat itu. Kemudian, di handler tombol X, ketika tombol X diklik, ia memeriksa jendela dialog terbuka yang direkam. Jika ada beberapa, pawang membatalkan operasi penutupan. Jika tidak, itu akan menghentikan program dan OS membersihkan memori yang diambil oleh program. Begini Cara kerjanya.