Açık bir iletişim kutusu varsa Microsoft Word tam olarak neden kapatılamıyor?


28

Word, başka bir iletişim kutusu açık olan bir belgeyi kapatmaya çalışırken Word'ün verdiği hatayı alıyorum ancak bunun neden olduğunu asla çözemedim.


6
Genel sorun, iletişim kutusundaki öğelerin ana pencerede ne yaptığınıza bağlı olarak geçerli, geçersiz veya hatta uygulanamayabileceği ve kullanıcının iletişim kutusundaki değişikliklerde bu sorunu gidermenin genellikle net bir yolu olmadığıdır. geçici. (Sanırım bu, "geri besleme döngüleri bir sistemde sorunlara neden olabilir" daha genel ilkesinin bir başka belirtisidir.)
Mehrdad

Görev Yöneticisi'ni başlatıp işlemi öldürmesini söylerseniz yapabilirler. =) Fakat bunun beklenmedik yan etkileri olabilir. ( Bir dosyanın zarar
görmesine

Yanıtlar:


61

Çünkü çoğu iletişim kutusu " modal " olarak kabul edilir , bu da iletişimin kendisi kapanana kadar kontrolün ana programa veya çağrı kabına geri dönmediği anlamına gelir. Bu, tasarım gereğidir ve programcı bir pencere kipinde veya kipsiz olma seçeneğine sahiptir. Genellikle, ana program açılan diyalog seçim (Tamam) veya iptal etme (İptal) ile ele alınana kadar devam edemez veya devam etmemesi durumunda kalıcı olarak tanımlanır.


4
Ancak diyalog modaldıysa, OP programın kapanmasını nasıl talimat verdi? Burada başka bir şeyler olabilir mi?
Monica

7
@LightnessRacesinOrbit Bir programı kapatmanın birçok yolu vardır, bunların tümü ana pencerede tıklama gerektirmez. Örneğin, bir görev çubuğu girişine sağ tıklayıp "Kapat" ı seçebilir veya Görev Yöneticisi'ni Ctrl-Shift-Esc ile yukarı çekip oradan kapatmayı deneyebilirsiniz. Windows'un kapatılması, uygulamaları başlangıçta incelikle kapatmaya da çalışacaktır, ancak daha sonra bir zaman aşımından sonra bunları "öldürebilir". Bunlar, programa gerçekten odaklanmadan kapanması için bir sinyal gönderir, dolayısıyla Bob'un ekran görüntüsü bu sırada "Tamam'ı tıklayın, Word'e geçin" diyor.
IMSoP

@IMSoP: Bir uygulamanın kapanmasını istemek için daha fazla "mühendislik" yolu olduğunun farkındayım, ancak zihinsel olarak "ortak kullanım" ın bittiğini düşündüğüm bir çizgi çizdim, çünkü OP'nin tam olarak neyi belirteceğini beklemiştim. “yaygın kullanım” dışında olsaydı yapıyorlardı.
Monica

11
@LightnessRacesinOrbit Size Görev Yöneticisinin daha "uzman" bir yöntem olduğunu söylüyorum, ancak insanlar görev çubuğundan bir şeyler kapatmanın tamamen normal olduğunu düşünürlerse hiç şaşırmam. Aslında, şimdi anlıyorum ki, sağ tıklatmanıza bile gerek yok, bir gruba gelindiğinde veya küçük resmi görüntülemek için tam orada kırmızı bir [x] düğmesi var. Farklı insanlar için farklı şeyler açık görünüyor.
IMSoP

@IMSoP: Bu doğru.
Monica

20

İletişim kutusu şöyle bir şey söylüyor olabilir:

Belgenizde değişiklik yaptınız, kaydetmek ister misiniz? (Evet Hayır)

Burada bariz bir doğru cevap yok. Dokümanınızı yanlışlıkla bozmuş olabilirsiniz (örneğin, klavyenin üzerinden geçen kedi), bu durumda cevap "Hayır" dır veya değişikliklerde yazarak saatlerce geçirmiş olabilirsiniz, bu durumda cevap "Evet" olur.

Word'ün yapması gereken en güvenli şey, soruyu cevaplayana kadar kapatmayı reddetmektir.


8
Sorunun özellikle bu hatayla ilgili olduğuna eminim .
Bob

12
Tamam, ama soru herhangi bir iletişim kutusundan bahsetmedi. Ben bir programcıyım, kalıcı bir iletişim kutusunun ne olduğunu anlıyorum, ancak bunun neden olduğu sorusunu cevaplamaya çalıştım .
Nick Gammon,

IMHO, programcı olmayan kişilerin programlar kullandığını unutmamalı.
LawrenceC

1

Program bu şekilde tasarlandığından, kullanıcının harekete geçmesini önlemek için harekete geçmek istemeyebilir.

Genellikle, program bazı eylemleri yönlendirmesi için kullanıcıya ihtiyaç duyduğunda bir iletişim kutusu görüntülenir. Kaydedilmemiş bir belgeyi kapatmak mükemmel bir örnektir: değişiklikleri kaydetmek, değişiklikleri silmek veya kapanmayı iptal etmek ve düzenlemeye geri dönmek için bir iletişim kutusu sunar. Program kasıtlı olarak bu soruyu cevaplamadan kapatmayı reddediyor çünkü kapanma bazı eylemleri zorlayacak. Program, örneğin kendi başına karar veremez. son düzenlemeyi atın veya tam tersine, klavyede yazarak doğru sürümün üzerine yazın.

Kapatmayla ilgili olmayan bir iletişim kutusu olsa bile, bu genellikle bazı işlemlerin devam ettiği, henüz tamamlanmadığı ve kullanıcının hangi yöne gideceğine karar vermesi gerektiği anlamına gelir. Bu "basitçe iptal edilemez" çünkü iptal etmek aynı zamanda kullanıcının istemediği bir eylemdir.

Aynı zamanda programın tasarımını da basitleştirir, çünkü yaratıcıları her işlevden "güvenli bir çıkış yolu" oluşturmak zorunda kalmazlar.

Günümüzde, çoğu iletişim kutusu teknik anlamda modal değildir (program sorumlu kalır), ancak programın mantıksal akışını daha geniş anlamında modal hale getirmek hala daha kolaydır.


0

Yanılıyor olabilirim, ancak bunun eski ortak iletişim kontrolü davranışına geri döndüğünden şüpheleniyorum.

Dönmeden aniden öldürülürse bunların birçoğunun, bazen ölü programın dışında bile istenmeyen yan etkileri oldu ve her durumda kullanıcı girişi gerektiren bir sistem seviyesinde bir şey yapıyorlarsa, onlardan kibarca kaçmanın bir yolu yoktu.

Neden hala bu şekilde, insanlar buna alıştılar, onlarca yıldır bu varsayımla programlanan geliştiriciler ve daha önemlisi programcı olmayanlar bu diyalogları ofis otomasyon senaryolarında kullandılar ve Microsoft, hedeflerin geriye dönük uyumluluğuna sıkı sıkıya bağlı değilse hiçbir şey yapmıyor. .


0

Perdelerin arkasında, program (bizim durumumuzda MS Word) pencereyi oluştururken "X düğmesine tıklayın olay işleyicisi" oluşturur. Bir iletişim penceresi varken, Word bunu kaydeder. Ardından, X düğmesi işleyicisinde, X düğmesi tıklatıldığında, kaydedilen açık iletişim pencerelerini kontrol eder. Bazıları varsa, işleyici yakın işlemi iptal eder. Değilse, programı sonlandırır ve işletim sistemi program tarafından alınan belleği temizler. Bu nasıl çalışır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.