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