Warum genau kann Microsoft Word nicht geschlossen werden, wenn ein Dialogfeld geöffnet ist?

Warum genau kann Microsoft Word nicht geschlossen werden, wenn ein Dialogfeld geöffnet ist?

Ich erhalte gelegentlich den Fehler, den Word ausgibt, wenn ich versuche, ein Dokument zu schließen, während ein anderes Dialogfeld geöffnet ist, aber ich konnte nie herausfinden,Warumes passiert.

Antwort1

Da die meisten Dialogfelder als „modal", was bedeutet, dass die Steuerung erst dann an das Hauptprogramm oder den aufrufenden Container zurückgegeben wird, wenn der Dialog selbst geschlossen ist. 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 fortfahren kann oder soll, bis der geöffnete Dialog entweder durch Auswahl (OK) oder Abbruch (Abbrechen) bearbeitet wurde.

Antwort2

Im Dialogfeld könnte etwa Folgendes stehen:

Sie haben Änderungen an Ihrem Dokument vorgenommen, möchten Sie diese speichern? (Ja) (Nein)

Hier gibt es keine eindeutige richtige Antwort. Möglicherweise haben Sie Ihr Dokument versehentlich beschädigt (z. B. ist die Katze über die Tastatur gelaufen). In diesem Fall lautet die Antwort „Nein“. Oder Sie haben Stunden damit verbracht, Änderungen einzutippen. In diesem Fall lautet die Antwort „Ja“.

Am sichersten ist es für Word, die Schließung zu verweigern, bis Sie die Frage beantwortet haben.

Antwort3

Denn das Programm ist so konzipiert, dass es Aktionen verhindert, die der Benutzer möglicherweise nicht möchte.

Normalerweise wird ein Dialogfeld angezeigt, wenn das Programm vom Benutzer eine Aktion verlangt. Das Schließen eines nicht gespeicherten Dokuments ist ein hervorragendes Beispiel: Ein Dialogfeld bietet an, die Änderungen zu speichern, zu verwerfen oder das Schließen abzubrechen und zur Bearbeitung zurückzukehren. Das Programm weigert sich absichtlich, das Dokument zu schließen, ohne diese Frage zu beantworten, da das Schließen IRGENDEINE Aktion erzwingen würde. Das Programm kann nicht selbst entscheiden, ob es beispielsweise die letzte Bearbeitung verwerfen oder im Gegenteil die korrekte Version durch Tippen mit der Katze auf der Tastatur überschreiben möchte.

Selbst wenn wir einen Dialog betrachten, der nichts mit dem Schließen zu tun hat, bedeutet dies normalerweise, dass ein Prozess läuft, der noch nicht abgeschlossen ist, und der Benutzer entscheiden muss, welchen Weg er einschlagen möchte. Er kann nicht „einfach abgebrochen“ werden, da das Abbrechen auch eine Aktion ist, die der Benutzer möglicherweise nicht beabsichtigt hat.

Darüber hinaus vereinfacht es die Programmgestaltung, da die Entwickler nicht für jede Funktion einen „sicheren Ausweg“ schaffen müssen.

Heutzutage sind die meisten Dialoge im technischen Sinne nicht modal (die Verantwortung liegt weiterhin beim Programm), aber es ist immer noch einfacher, sie im weiteren Sinne des logischen Programmflusses modal zu machen.

Antwort4

Hinter den Kulissen erstellt das Programm (in unserem Fall MS Word) beim Erstellen des Fensters einen „X-Button-Klick-Ereignishandler“. Wenn ein Dialogfenster vorhanden ist, zeichnet Word dies auf. Wenn dann im X-Button-Handler auf die X-Schaltfläche geklickt wird, wird geprüft, ob aufgezeichnete offene Dialogfenster vorhanden sind. Wenn welche vorhanden sind, bricht der Handler den Schließvorgang ab. Wenn nicht, wird das Programm beendet und das Betriebssystem bereinigt den vom Programm belegten Speicher. So funktioniert es.

verwandte Informationen