Ich erhalte gelegentlich die Fehlermeldung, die Word beim Schließen eines Dokuments mit einem anderen geöffneten Dialogfeld ausgibt, konnte jedoch nie herausfinden, warum dies der Fall ist.
Ich erhalte gelegentlich die Fehlermeldung, die Word beim Schließen eines Dokuments mit einem anderen geöffneten Dialogfeld ausgibt, konnte jedoch nie herausfinden, warum dies der Fall ist.
Antworten:
Da die meisten Dialogfelder als " modal " betrachtet werden, wird die Steuerung erst dann an das Hauptprogramm oder den aufrufenden Container zurückgegeben, wenn der Dialog selbst geschlossen wird. Dies ist beabsichtigt und der Programmierer hat die Möglichkeit, ein Fenster modal oder nicht modal zu machen. Normalerweise wird ein Fenster als modal definiert, wenn das Hauptprogramm nicht weiterarbeiten kann oder soll, bis der geöffnete Dialog entweder durch Auswahl (Ok) oder Abbrechen (Abbrechen) bearbeitet wird.
Das Dialogfeld könnte etwa so lauten:
Sie haben Änderungen an Ihrem Dokument vorgenommen. Möchten Sie diese speichern? (Ja Nein)
Hier gibt es keine offensichtliche richtige Antwort. Möglicherweise haben Sie Ihr Dokument versehentlich beschädigt (z. B. die Katze ist über die Tastatur gegangen). In diesem Fall lautet die Antwort "Nein". In diesem Fall haben Sie möglicherweise stundenlang Änderungen eingegeben. In diesem Fall lautet die Antwort "Ja".
Das Sicherste, was Word tun kann, ist, das Schließen zu verweigern, bis Sie die Frage beantwortet haben.
Da das Programm auf diese Weise entworfen wurde, möchte der Benutzer möglicherweise keine Maßnahmen ergreifen.
In der Regel wird ein Dialogfeld angezeigt, in dem der Benutzer eine Aktion ausführen muss. Das Schließen eines nicht gespeicherten Dokuments ist ein hervorragendes Beispiel: In einem Dialogfeld können Sie die Änderungen speichern, verwerfen oder das Schließen abbrechen und zur Bearbeitung zurückkehren. Das Programm weigert sich absichtlich, das Programm zu schließen, ohne diese Frage zu beantworten, da durch das Schließen einige Maßnahmen erzwungen werden. Das Programm kann nicht selbst entscheiden, z. Verwerfen Sie die zuletzt vorgenommene Bearbeitung oder überschreiben Sie im Gegenteil die richtige Version mit der Tastaturtastatur.
Selbst wenn wir einen Dialog betrachten, der nicht mit dem Schließen zusammenhängt, bedeutet dies normalerweise, dass ein Prozess im Gange ist, der noch nicht abgeschlossen wurde und der Benutzer entscheiden muss, welchen Weg er einschlagen soll. Es kann nicht "einfach abgebrochen" werden, da das Abbrechen auch eine Aktion ist, die der Benutzer möglicherweise nicht gemeint hat.
Dies vereinfacht auch das Design des Programms, da die Entwickler nicht für jede Funktion einen "sicheren Ausweg" schaffen müssen.
Heutzutage sind die meisten Dialoge im technischen Sinne nicht modal (das Programm bleibt verantwortlich), aber es ist immer noch einfacher, sie im weiteren Sinne des logischen Flusses des Programms modal zu gestalten.
Ich könnte mich irren, aber ich vermute, dass dies auf das alte allgemeine Dialogsteuerungsverhalten zurückgeht.
Einige von denen, die abrupt getötet wurden, ohne dass sie zurückkehrten, hatten unangenehme Nebenwirkungen, manchmal sogar außerhalb des jetzt toten Programms, und es gab nicht in jedem Fall eine Möglichkeit, sich höflich von ihnen zu lösen, wenn sie etwas auf Systemebene taten, das Benutzereingaben erforderte.
Was den Grund betrifft, warum dies immer noch so ist, haben sich die Leute daran gewöhnt, die Entwickler haben jahrzehntelang mit dieser Annahme programmiert und, was noch wichtiger ist, Nicht-Programmierer haben diese Dialoge in ihren Skripten für die Büroautomatisierung verwendet .
Hinter den Kulissen erstellt das Programm (in unserem Fall MS Word) beim Erstellen des Fensters einen "X-Button-Click-Event-Handler". Wenn ein Dialogfeld angezeigt wird, zeichnet Word dies auf. Wenn Sie dann im X-Button-Handler auf den X-Button klicken, wird nach aufgezeichneten geöffneten Dialogfenstern gesucht. Wenn es welche gibt, bricht der Handler den Schließvorgang ab. Ist dies nicht der Fall, wird das Programm beendet und das Betriebssystem räumt den vom Programm belegten Speicher auf. So funktioniert es.