Komfortabler Dateimanager mit vielen Funktionen

Aussagekräftige Hinweisdialoge

By Sven on 18.05.2007 - 17:11 in SpeedCommander 12

Zur Anzeige von Hinweisen oder bei nötigen Entscheidungen verwenden viele Windows-Entwickler gerne die Funktion MessageBox. Man übergibt einen Text und legt die anzuzeigenden Schaltflächen fest, die Funktion bastelt dann daraus einen Dialog und zeigt ihn an.

Leider ist man bei der Wahl der Schaltflächen auf die folgenden Möglichkeiten beschränkt:

  • <OK>
  • <OK> und <Abbrechen>
  • <Ja> und <Nein>
  • <Ja>, <Nein> und <Abbrechen>
  • <Abbrechen>, <Wiederholen> und <Ignorieren>
  • <Abbrechen>, <Wiederholen> und <Weiter>

Möchte man zudem, dass der Hinweisdialog auch mit ‚Escape‘ verlassen werden kann, so muss explizt eine Abbrechen-Schaltfläche enthalten sein. Ist ein anderes Verhalten gewünscht oder möchte man eine andere Kombination von Schaltflächen einsetzen, so bleibt nur die Verwendung einer eigenen Dialogvorlage für jeden besonderen Fall.

Die meisten Programmierer sind aber von Natur aus recht faul. Anstatt eine eigene Dialogvorlage zu erstellen, werden die Hinweise oder Entscheidungsfragen so formuliert, dass man mit den angebotenen Schaltflächen auskommt. Allerdings kann es dann schon einmal vorkommen, dass der Anwender beim Lesen der Meldung nur hilflos mit den Schultern zuckt vor lauter Text gar nicht mehr weiß, welche Schaltfläche er nun wählen soll:

Layout ersetzen (SC11)

Auch bei Microsoft hat man das Problem erkannt. Mit Vista bekommt die ehrwürdige MessageBox mit dem Task-Dialog einen wirklich überzeugenden Nachfolger. Ein Task-Dialog besteht aus mehreren Elementen, die wichtigsten sind der etwas hervorgehobene Anweisungstext, der eigentliche Inhalt der Meldung sowie der Bereich mit den allgemeinen Schaltflächen. Zudem gibt es noch eine Reihe von optionalen Elementen:

  • eine Fortschrittsanzeige
  • eine beliebige Anzahl von Optionsfeldern
  • eine beliebige Anzahl von Command-Links
  • einen auf-/zuklappbaren Bereich mit erweiterten Informationen
  • ein Bestätigungskästchen (z.B. „Diesen Dialog nicht mehr anzeigen“)
  • einen Fußbereich mit zusätzlichen Informationen
  • zusätzliche Schaltflächen mit eigener Beschriftung

Alle diese Informationen werden in einer TASKDIALOGCONFIG-Struktur gesammelt und mit Hilfe der Funktion TaskDialogIndirect angezeigt. Dem Entwickler bleibt so der Entwurf eigener Dialogvorlagen erspart, stattdessen wird der Dialog mit den ausgewählten Elementen dynamisch zusammengestellt.

Auch SpeedCommander 12 wird mehr und mehr die neuen Task-Dialoge verwenden. Bei neuentwickelten Funktionen verzichte ich schon jetzt auf die alten MessageBoxen, ältere Funktionen werden Stück für Stück umgestellt. Der oben gezeigte Hinweis beim möglichen Überschreiben eines Layouts sieht in SpeedCommander 12 z.B. so aus:

Layout ersetzen (SC12)

Unter Windows XP und allen früheren Systemen werden die Task-Dialoge emuliert und schauen so aus:

Layout überschreiben (Windows XP)

Layout überschreiben (Windows 2000)

Es gibt 8 Kommentare zu diesem Beitrag

Trackback URL | RSS-Feed für Kommentare

  1. Kay sagt:

    Sieht gut aus! 🙂

  2. thomas sagt:

    macht ja auch mehr sinn als im 1. dialog 😉

  3. Eric sagt:

    Auf jeden Fall übersichtlicher, verständlicher, und dank des weißen Hintergrundes wirken sie auch deutlich freundlicher und jagen dem unbedarftem Anwender nicht so viel Angst ein wie die alten grauen Dialoge mit viel Text.
    Schön dass es auch für die Nicht-Vista Betriebssysteme emuliert wird.

  4. Justin sagt:

    Hallo Sven,

    emulierst du die Dialoge unter Nicht-Vista Betriebssystemen selber oder gibts da schon etwas?

  5. Sven sagt:

    Ja, die Dialoge werden unter früheren Systemen selbst emuliert.

  6. thomas sagt:

    Wann ist denn endlich Weihnachten ^^

  7. Sven sagt:

    Mitte August könnte dieses Jahr Ostern sein, Weihnachten dann Anfang Oktober. 😉

  8. thomas sagt:

    lol meinen dicken Eier freuen sich schon 😀

Top