Perché non è possibile chiudere esattamente Microsoft Word se è aperta una finestra di dialogo?


28

Occasionalmente ricevo l'errore che Word dà quando provo a chiudere un documento con un'altra finestra di dialogo aperta ma non sono mai stato in grado di capire perché ciò accada.


6
Il problema generale è che le cose nella finestra di dialogo potrebbero diventare valide, non valide o persino inapplicabili a seconda di ciò che fai nella finestra principale e spesso non esiste un modo chiaro per risolverlo con le modifiche che l'utente potrebbe aver apportato nella finestra di dialogo nella ad interim. (Immagino che questa sia solo un'altra manifestazione del principio più generale di "i circuiti di feedback possono causare problemi in un sistema".)
Mehrdad

Possono farlo se si avvia Task Manager e gli si dice di interrompere il processo. =) Ma questo potrebbe avere effetti collaterali inaspettati. ( Potrebbero esserci alcuni rari casi in cui un file potrebbe finire danneggiato, ma sono abbastanza sicuro che sarebbero estremamente rari. Deve comunque essere progettato per crash imprevisti e interruzioni di corrente.)
jpmc26

Risposte:


61

Perché la maggior parte delle finestre di dialogo sono considerate " modali ", il che significa che il controllo non passa al programma principale o al contenitore di chiamata, fino a quando la finestra di dialogo stessa non viene chiusa. Questo è di progettazione e il programmatore ha la possibilità di rendere una finestra modale o non modale. Di solito, una finestra viene definita modale se il programma principale non può o non deve continuare fino a quando la finestra di dialogo aperta non viene gestita tramite la selezione (Ok) o l'interruzione (Annulla).


4
Ma se il dialogo era modale, come ha fatto l'OP a chiudere il programma? Potrebbe succedere qualcos'altro qui?
Lightness Races con Monica

7
@LightnessRacesinOrbit Esistono molti modi per chiudere un programma, e non tutti richiedono clic sulla finestra principale. Ad esempio, è possibile fare clic con il pulsante destro del mouse su una voce della barra delle applicazioni e selezionare "Chiudi", oppure tirare su Task Manager con Ctrl-Shift-Esc e provare a chiudere da lì. Anche la chiusura di Windows tenterà inizialmente di chiudere le applicazioni con garbo, sebbene possa poi "ucciderle" dopo un timeout. Questi inviano un segnale al programma per chiudersi senza che sia effettivamente attivo, quindi lo screenshot di Bob che dice "Fai clic su OK, passa a Word" in questo ordine.
IMSoP

@IMSoP: Sono consapevole che ci sono più modi "ingegneristici" per chiedere la chiusura di un'applicazione, ma mentalmente ho tracciato una linea in cui penso che "uso comune" finisca, perché mi sarei aspettato che l'OP specificasse esattamente cosa stavano facendo se andasse oltre l '"uso comune".
Lightness Races con Monica

11
@LightnessRacesinOrbit Ti concedo che Task Manager è un modo più "esperto", ma non sarei affatto sorpreso se la gente pensasse che chiudere qualcosa dalla barra delle applicazioni fosse perfettamente normale. In effetti, ora capisco, non è nemmeno necessario fare clic con il pulsante destro del mouse, c'è un pulsante rosso [x] proprio lì se passi il mouse sopra un gruppo o visualizzi la piccola anteprima. Cose diverse sembrano ovvie a persone diverse.
IMSoP

@IMSoP: è vero.
Lightness Races con Monica

20

La finestra di dialogo potrebbe dire qualcosa del tipo:

Hai apportato modifiche al tuo documento, vuoi salvarli? (Si No)

Non esiste una risposta giusta ovvia qui. È possibile che tu abbia corrotto accidentalmente il tuo documento (ad esempio, il gatto ha camminato sulla tastiera), nel qual caso la risposta è "No", oppure potresti aver passato ore a digitare le modifiche, nel qual caso la risposta è "Sì".

La cosa più sicura da fare per Word è rifiutare di chiudere fino a quando non si risponde alla domanda.


8
Sono abbastanza sicuro che la domanda riguardi specificamente questo errore.
Bob

12
OK, ma la domanda non ha menzionato alcuna finestra di dialogo particolare. Sono un programmatore, capisco cos'è una finestra di dialogo modale, tuttavia ho cercato di rispondere alla domanda sul perché accada.
Nick Gammon,

L'IMHO deve tenere presente che le persone che non sono programmatori usano programmi.
LawrenceC

1

Poiché il programma è progettato in questo modo, per evitare di agire l'utente potrebbe non volerlo.

Di solito, viene visualizzata una finestra di dialogo quando il programma richiede all'utente di guidare alcune azioni. La chiusura di un documento non salvato è un ottimo esempio: una finestra di dialogo offre di salvare le modifiche, scartare le modifiche o interrompere la chiusura e tornare alla modifica. Il programma rifiuta intenzionalmente di chiudere senza rispondere a questa domanda perché la chiusura imporrà ALCUNE azioni da intraprendere. Il programma non può decidere da solo, ad es. scartare la modifica recente o, al contrario, sovrascrivere la versione corretta con la digitazione cat sulla tastiera.

Anche se consideriamo una finestra di dialogo non correlata alla chiusura, di solito significa che è in corso un processo, che non è stato ancora completato e l'utente deve decidere da che parte andare. Non può essere "semplicemente interrotto", perché anche l'interruzione è un'azione che l'utente potrebbe non voler dire.

Semplifica anche la progettazione del programma, in quanto i suoi creatori non devono creare "una via d'uscita sicura" per ogni funzione.

Oggi, la maggior parte dei dialoghi non sono modali in senso tecnico (il programma rimane responsabile), ma è ancora più semplice renderli modali in un senso più ampio del flusso logico del programma.


0

Potrei sbagliarmi, ma sospetto che ciò risalga al vecchio comportamento comune di controllo del dialogo.

Molti di quelli se uccisi bruscamente senza tornare hanno avuto effetti collaterali spiacevoli, a volte anche al di fuori del programma ormai morto e non c'era modo di sfuggirgli educatamente in tutti i casi se stavano facendo qualcosa a livello di sistema che richiedeva l'input dell'utente.

Per quanto riguarda il motivo per cui è ancora così, le persone si sono abituate, gli sviluppatori hanno programmato questa ipotesi per decenni e, soprattutto, i non programmatori hanno usato quei dialoghi nei loro script di automazione dell'ufficio e Microsoft non è altro che un rigoroso aderente alla compatibilità con gli obiettivi all'indietro .


0

Dietro le tende, il programma (nel nostro caso è MS Word) crea un "gestore di eventi clic sul pulsante X" durante la creazione della finestra. Quando c'è una finestra di dialogo, Word lo registra. Quindi, nel gestore del pulsante X, quando si fa clic sul pulsante X, controlla le finestre di dialogo aperte registrate. Se ce ne sono, il gestore interrompe l'operazione di chiusura. In caso contrario, termina il programma e il sistema operativo pulisce la memoria occupata dal programma. È così che funziona.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.