MESSAGEBOX( )-Funktion
Zeigt ein benutzerdefiniertes Dialogfeld an.
MESSAGEBOX(eMessageText [, cTitleBarText][, nDialogBoxType ][, nTimeout])
Rückgabewerte
Numerisch
Parameter
eMessageText
Gibt den Text an, der im Dialogfeld angezeigt wird. Fügen Sie ein Wagenrücklaufzeichen (CHR(13)) in eMessageText ein, um einen Teil des Textes in die nächste Zeile des Dialogfeldes zu verschieben. Die Höhe und Breite des Dialogfeldes werden so verändert, dass cMessageText hineinpasst.Anstelle von eMessageText kann jede gültige Visual FoxPro-Funktion und jeder gültige Datentyp verwendet werden. Wird die von Ihnen verwendete Funktion nicht als Zeichenwert ausgewertet, verwendet Visual FoxPro automatisch TRANSFORM, um die Zeichenentsprechung zu liefern. Dies wird im folgenden Beispiel gezeigt:
MESSAGEBOX(DATE())
nDialogBoxType
Gibt die im Dialogfeld angezeigten Schaltflächen und Symbole, die Standardschaltfläche und das Verhalten des Dialogfeldes an.In den folgenden Tabellen bezeichnen die Werte 0 bis 5 der Dialogfeldschaltflächen die im Dialogfeld angezeigten Schaltflächen. Die Symbolwerte 16, 32, 48 und 64 bezeichnen das im Dialogfeld angezeigte Symbol. Die Standardwerte 0, 256 und 512 geben an, welche Schaltfläche im Dialogfeld die Standardschaltfläche ist. Die Standardschaltfläche ist ausgewählt, wenn das Dialogfeld angezeigt wird.
Wird nDialogBoxType nicht angegeben, hat das dieselbe Auswirkung wie die Angabe des Wertes O für nDialogBoxType.
Wert Schaltflächen des Dialogfeldes 0 Nur die Schaltfläche OK 1 Die Schaltflächen OK und Abbrechen 2 Die Schaltflächen Abbrechen, Wiederholen und Ignorieren 3 Die Schaltflächen Ja, Nein und Abbrechen 4 Die Schaltflächen Ja und Nein 5 Die Schaltflächen Wiederholen und Abbrechen Wert Symbol 16 Stopschild 32 Fragezeichen 48 Ausrufezeichen 64 Informationssymbol (i) Wert Standardschaltfläche 0 Erste Schaltfläche 256 Zweite Schaltfläche 512 Dritte Schaltfläche nDialogBoxType kann die Summe aus bis zu drei Werten sein: jeweils ein Wert aus einer der vorangegangenen Tabellen. Ist nDialogBoxType z. B. gleich 290 (2+32+256), weist das angegebene Dialogfeld die folgenden Merkmale auf:
- Die Schaltflächen Abbrechen, Wiederholen und Ignorieren.
- Im Meldungsfeld wird das Symbol Fragezeichen angezeigt.
- Die zweite Schaltfläche (Wiederholen) ist die Standardschaltfläche.
Weitere Informationen zu den Konstanten sind in der Datei FoxPro.h verfügbar, die sich im Visual FoxPro-Basisverzeichnis befindet. Das Verwenden definierter Konstanten wie MB_ABORTRETRYIGNORE + MB_ICONQUESTION + MB_DEFBUTTON2 kann zu einer besseren Lesbarkeit führen als 2 + 32 + 256.
cTitleBarText
Gibt den Text an, der in der Titelleiste des Dialogfeldes angezeigt wird. Wird cTitleBarText nicht angegeben, erfolgt die Anzeige des Titels Microsoft Visual FoxPro.nTimeout
Gibt an, wie viele Millisekunden Visual FoxPro cMessageText ohne Tastatur- oder Mauseingabe anzeigt, bevor dieser entfernt wird. Jeder gültige Timeoutwert kann angegeben werden. Ein Wert kleiner als 1 führt bis zu einer Benutzereingabe niemals zu einem Timeout (ebenso wie ohne den Parameter nTimeout). Tritt ein Timeout auf, gibt MESSAGEBOX( ) den Wert –1 zurück.
Hinweise
Der von MESSAGEBOX( ) zurückgegebene Wert gibt an, welche Schaltfläche im Dialogfeld gewählt war. Bei Dialogfeldern, die die Schaltfläche Abbrechen besitzen, wird beim Verlassen des Feldes mit ESC derselbe Wert (2) wie beim Wählen von Abbrechen zurückgegeben.
Beachten Sie dabei, dass die Kurzform für diese Funktion MESSAGEB( ) lautet.
In der folgenden Tabelle sind die Werte aufgelistet, die MESSAGEBOX( ) für die Schaltflächen zurückgibt.
Rückgabewert | Schaltfläche |
---|---|
1 | OK |
2 | Cancel |
3 | Abbrechen |
4 | Wiederholen |
5 | Ignorieren |
6 | Ja |
7 | Nein |
Die MESSAGEBOX( )-Funktion verwendet intelligente Parameter, wobei der Parametertyp bestimmt, welcher Parameter verwendet wird. Der erste Parameter ist erforderlich und lautet stets cMessageText. Der optionale zweite Parameter kann jedoch sowohl nDialogBoxType (bei numerischem Typ) als auch cTitleBarText (beim Typ Zeichen) sein. Beim zweiten optionalen numerischen Parameter wird stets vom Parameter nTimeout ausgegangen. Folgende gültige Beispiele sind möglich:
MESSAGEBOX("HELLO","MyTitle",36,1)
MESSAGEBOX("HELLO",36,"MyTitle",1)
MESSAGEBOX("HELLO",36,1)
MESSAGEBOX("HELLO",36,1,"MyTitle")
Beispiel
Im folgenden Beispiel wird ein benutzerdefiniertes Dialogfeld angezeigt. Die Meldung Record not found. Would you like to search again? wird als Beschriftung des benutzerdefinierten Dialogfeldes und My Application in der Titelleiste angezeigt.
Das benutzerdefinierte Dialogfeld enthält die Schaltflächen Ja und Nein sowie das Symbol Fragezeichen. Die zweite Schaltfläche (Nein) ist die Standardschaltfläche. Sobald Sie auf eine der Schaltflächen geklickt haben, wird deren Beschriftung angezeigt.
cMessageTitle = 'My Application'
cMessageText = 'Record not found. Would you like to search again?'
nDialogType = 4 + 32 + 256
* 4 = Yes and No buttons
* 32 = Question mark icon
* 256 = Second button is default
nAnswer = MESSAGEBOX(cMessageText, nDialogType, cMessageTitle)
DO CASE
CASE nAnswer = 6
WAIT WINDOW 'You chose Yes'
CASE nAnswer = 7
WAIT WINDOW 'You chose No'
ENDCASE