Mengapa tepatnya Microsoft Word tidak dapat ditutup jika ada kotak dialog terbuka?

28

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.

John
sumber
6
Masalah umum adalah bahwa hal-hal dalam dialog mungkin menjadi valid, tidak valid, atau bahkan tidak dapat diterapkan tergantung pada apa yang Anda lakukan di jendela utama, dan sering kali tidak ada cara yang jelas untuk menyelesaikan ini dengan perubahan yang mungkin dibuat pengguna dalam dialog di sementara. (Saya kira ini hanyalah manifestasi lain dari prinsip yang lebih umum dari "loop umpan balik dapat menyebabkan masalah dalam suatu sistem".)
Mehrdad
Mereka dapat jika Anda meluncurkan Task Manager dan menyuruhnya untuk menghentikan prosesnya. =) Tapi ini mungkin memiliki efek samping yang tidak terduga. ( Mungkin ada beberapa kasus yang jarang terjadi di mana file dapat berakhir rusak, tapi saya cukup yakin mereka akan sangat jarang. Itu harus dirancang untuk crash dan pemadaman listrik yang tidak terduga.)
jpmc26

Jawaban:

61

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).

Bill Hileman
sumber
4
Tetapi jika dialog itu modal, bagaimana OP memerintahkan program untuk menutup? Mungkinkah ada hal lain yang terjadi di sini?
Lightness Races dalam Orbit
7
@LightnessRacesinOrbit Ada banyak cara untuk menutup program, tidak semuanya membutuhkan klik di jendela utama. Misalnya, Anda dapat mengeklik kanan pada entri bilah tugas dan memilih "Tutup", atau tarik Pengelola Tugas dengan Ctrl-Shift-Esc dan coba tutup dari sana. Mematikan Windows juga akan mencoba untuk menutup aplikasi dengan anggun pada awalnya, meskipun kemudian dapat "membunuh" mereka setelah batas waktu. Ini mengirimkan sinyal ke program untuk menutup tanpa benar-benar memiliki fokus, karenanya tangkapan layar Bob mengatakan "Klik OK, beralih ke Word" dalam urutan itu.
IMSoP
@IMSoP: Saya sadar bahwa ada lebih banyak "rekayasa" cara untuk meminta aplikasi ditutup, tetapi saya secara mental menggambar garis di mana saya pikir "penggunaan umum" berakhir, karena saya mengharapkan OP untuk menentukan dengan tepat apa yang harus dilakukan. mereka lakukan jika itu di luar "penggunaan umum".
Lightness Races dalam Orbit
11
@LightnessRacesinOrbit Saya beri Anda Task Manager adalah cara yang lebih "ahli", tapi saya tidak akan terkejut jika orang berpikir menutup sesuatu dari taskbar adalah hal yang normal. Bahkan, sekarang saya sadar, Anda bahkan tidak perlu mengklik kanan, ada tombol merah [x] di sana jika Anda mengarahkan kursor ke grup atau melihat thumbnail kecil. Hal yang berbeda tampak jelas bagi orang yang berbeda.
IMSoP
@IMSoP: Itu benar.
Lightness Races dalam Orbit
20

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.

Nick Gammon
sumber
8
Saya cukup yakin pertanyaannya adalah tentang kesalahan ini secara khusus.
Bob
12
OK, tapi pertanyaannya tidak menyebutkan kotak dialog tertentu. Saya seorang programmer, saya mengerti apa itu kotak dialog modal, namun saya mencoba menjawab pertanyaan mengapa itu terjadi.
Nick Gammon
IMHO harus diingat bahwa orang yang bukan pemrogram menggunakan program.
LawrenceC
1

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.

Agent_L
sumber
0

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. .

Tagihan
sumber
0

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.

Vladislav Toncharov
sumber