Lade...
 

DialogBox

DialogBox

191473

DialogBox // = DialogBox(WARN+OK, 0) DialogBox(ICON[+BUTTON][+BUTTON]...) DialogBox(BUTTON[+BUTTON][+BUTTON]...) DialogBox(ICON[+BUTTON][+BUTTON]..., timeout) DialogBox(BUTTON[+BUTTON][+BUTTON]..., timeout) DialogBox(, timeout) //= DialogBox(WARN+OK, timeout)

Parameter

ICON & BUTTONS:
Die DialogBox erwartet ein optionales Icon(NotificationLevel) gefolgt von (prinzipiell) beliebig vielen Buttons. Sollte kein Icon angegeben worden sein, dann wird  WARN gewählt.
Die Buttons werden mit + getrennt direkt hinter das Icon geschrieben. Sollte kein Button angegeben worden sein, dann wird implizit der Button OK angegeben.

TIMEOUT:
Hier kann eine Zeit größer 0 (in Sekunden) angegeben werden, nach welcher sich das Dialog-Fenster automatisch schließen soll, falls der Nutzer keinen Button gedrückt hat. Läuft das Dialog-Fenster in einen Timeout, dann gibt DialogBox INVALID zurück.

 

Beschreibung

Mit diesem Befehl können die von Windows zur Verfügung gestellten vordefinierten, modalen Dialoge geöffnet werden, um den Programmablauf zu unterbrechen und den Nutzer zu informieren, oder bezüglich des weiteren Ablaufs zu Fragen.

Durch die default-Werte verhält sich der Befehl DialogBox ohne Parameter genauso, wie Attention ohne Parameter mit dem Unterschied, dass OK auf als Ergebnis auf den Stack gelegt wird.

Wird ClassiX ohne einen verbundenen MorphIT-Client ausgeführt, dann unterliegen die Kombinationen der erlaubten Buttons den Einschränkungen, die auch für die MessageBox der WinAPI gelten. Konkret sind die folgenden Kombinationen erlaubt:

Erlaubte Kombinationen
OK

OK+CANCEL

RETRY+CANCEL
YES+NO
YES+NO+CANCEL
ABORT+RETRY+IGNORE
CANCEL+RETRY+CONTINUE

CANCEL hat eine besondere Semantik und repräsentiert zusätzlich zum "Abbrechen"-Button auch das X zum Schließen des Fensters. Wird der Dialog geschlossen, dann wird als Ergebnis CANCEL zurückgegeben. Ein Dialog, der keinen CANCEL-Button angibt, lässt sich nicht per X schließen (timeout geht trotzdem) Beispiel: DialogBox(YES+NO) .
Die einzige Ausnahme von dieser Regel bildet ein Dialog, der nur den OK-Button enthält. In diesem Fall lässt sich der Dialog trotzdem per X schließen und als Ergebnis wird OK zurückgegeben.

 

Codebeispiel

//Open a dialog box, which gives the user 5 seconds to abort a shutdown T("ClasiX beenden?", "Close ClassiX?") DialogBox(QUESTION+YES+NO, 5) case INVALID: //timeout YES: //YES pressed TerminateApp endCase

Stack

Stack Position Beschreibung
Stack(In) Top String
Stack(Out) Top BUTTON | INVALID