Seite 1 von 1
MsgBox prob
Verfasst: So, 05.03.2006 00:15
von Creator
Also ich möchte folgendes, dass ich wenn ich auf eine Schaltfläche klicke, wie z.B. "Ja" das dann eine MsgBox kommt und das auch bei "Nein". Nun ist mein Problem das egal ob ich Ja oder Nein klicke die selbe msg box kommt.
hier mein Quelltext:
Code: Alles auswählen
Sub BspPrg03
Dim dtmDatum As Date, intWert As Date
intWert = date
dtmDatum = time
IF MsgBox ("Es ist jetzt " + dtmDatum +" spät und das Heute der " + intwert + _
" ist. Ist das richtig?", 3 + 1, "Uhrzeit? Datum?") THEN
' Ja button pressed
MsgBox "Ich muss es ja auch wissen :D"
ELSE
' Nein button pressed
MsgBox "Deine Uhrzeit ist dann falsch!"
END IF
End Sub
Verfasst: So, 05.03.2006 08:32
von Stephan
Naja, der Code arbeitet schon richtig, denn er prüft ob die Msgbox irgendeine Rückgabe liefert und wenn das der Fall ist erfolgt die Aktion.
Soll unterschieden werden welche Rückgabe geliefert wird muß das natürlich geprüft werden. Auf die Schnelle so:
Code: Alles auswählen
Sub BspPrg03
Dim dtmDatum As Date, intWert As Date
intWert = date
dtmDatum = time
IF MsgBox ("Es ist jetzt " + dtmDatum +" spät und das Heute der " _
+ intwert + " ist. Ist das richtig?", 3 + 1, "Uhrzeit? Datum?") = 6 THEN
' Ja button pressed
MsgBox "Ich muss es ja auch wissen :D"
ELSE
' Nein button pressed
MsgBox "Deine Uhrzeit ist dann falsch!"
END IF
End Sub
Ganz korrekt ist das aber nicht weil jetzt nur zwischen Ja und irgendeinem anderen Wert unterschieden wird. Willst Du expliziet nur bei Nein reagieren wäre das noch gesondert zu prüfen. Praktisch läuft es aber auch so.
Gruß
Stephan
Verfasst: So, 05.03.2006 11:08
von Creator
Ja aber wie mach ich es denn, das bei jeder Schaltfläche eine andere MsgBox auftaucht?
Bin noch ein noob dadrin

Verfasst: So, 05.03.2006 12:00
von Stephan
Ja aber wie mach ich es denn, das bei jeder Schaltfläche eine andere MsgBox auftaucht?
?
genügt der Code den ich gepostet habe Deinen Ansprüchen nicht? Dann müßtest Du schreiben was passieren soll. Der Code macht das was Du beschrieben hast.
Gruß
Stephan
Verfasst: So, 05.03.2006 13:26
von Creator
ich wollte jetzt nicht unhöflich vorkommen, hätte nur gerne eine erklärung zum code gehabt
Verfasst: So, 05.03.2006 14:55
von Stephan
ich wollte jetzt nicht unhöflich vorkommen, hätte nur gerne eine erklärung zum code gehabt
Eine Frage dazu wäre nicht unhöflich gewesen (dazu ist ja das Forum da), ich konnte nur aus Deiner Bemerkung nicht entnehmen das Du eine Erklärung wolltest.
Erklärung:
Durch Aufruf der Msgbox-Fuktion mit dem Parameter 4 (3 + 1) wird auf dem Dialog eine Ja und eine Nein Schaltfläche erzeugt.
Code: Alles auswählen
MsgBox ("Es ist jetzt " + dtmDatum +" spät und das Heute der " _
+ intwert + " ist. Ist das richtig?", 3 + 1, "Uhrzeit? Datum?")
Der Dialog ist somit in der Lage zwei Rückgabewerte zu liefern in Abhängigkeit davon welche Schaltfläche gedrückt wurde und zwar 6 für ja und 7 für nein (siehe OOo-Hilfe zu MSGBOX-Funktion)
mittels If wertest Du die Rückgabe aus und das Konstrukt:
Code: Alles auswählen
IF MsgBox ("Es ist jetzt " + dtmDatum +" spät und das Heute der " _
+ intwert + " ist. Ist das richtig?", 3 + 1, "Uhrzeit? Datum?") = 6 THEN
' Ja button pressed
MsgBox "Ich muss es ja auch wissen :D"
ELSE
' Nein button pressed
MsgBox "Deine Uhrzeit ist dann falsch!"
END IF
bedeutet einfach:
Ist die Rückgabe 6 dann mache das was hinter Then steht und ist die Rückgabe nicht 6 dann mache das was hinter Else steht.
Meine Anmerkung:
Ganz korrekt ist das aber nicht weil jetzt nur zwischen Ja und irgendeinem anderen Wert unterschieden wird.
bezog sich nun darauf das der Code in der vo0rliegenden Form nur die Rückgabe für ja explizit prüft und wenn es keine ja-Rückgabe gibt wird alles Andere als Nein interpretiert, was im Speziellen keine Probleme macht, aber ebend etwas Anderes ist als ja und nein genau zu unterscheiden. Das ginge z.B. so:
Code: Alles auswählen
Sub BspPrg03a
Dim dtmDatum As Date, intWert As Date
intWert = date
dtmDatum = time
X = MsgBox ("Es ist jetzt " + dtmDatum +" spät und das Heute der " _
+ intwert + " ist. Ist das richtig?", 3 + 1, "Uhrzeit? Datum?")
Select Case X
Case 6
MsgBox "Ich muss es ja auch wissen :D"
Case 7
MsgBox "Deine Uhrzeit ist dann falsch!"
Case Else
Msgbox "unerwartetes Resultat"
End Select
End Sub
Gruß
Stephan
Verfasst: So, 05.03.2006 15:11
von Creator
Also soweit hab ich das verstanden, hab nun folgenden Quelltext:
Code: Alles auswählen
Sub BspPrg03
Dim dtmDatum As Date, intWert As Date
intWert = date
dtmDatum = time
Select Case MsgBox ("Es ist jetzt " + dtmDatum +" spät und das Heute der " + intwert + _
" ist. Ist das richtig?", 3, "Uhrzeit? Datum?")
Case 6 'Benutzer hat auf "Ja" geklickt
MsgBox "Ich muss es ja auch wissen :D"
Case 7 'Benutzer hat auf "Nein" geklickt
MsgBox "Dann stimmt hier was nicht!"
Case 2 'Benutzer hat auf "Abbrechen" geklickt
MsgBox "Dann eben net, selber Schuld"
End Select
End Sub
Wie kann ich das jetzt so machen das, wenn man zb. bei
Code: Alles auswählen
Case 6 'Benutzer hat auf "Ja" geklickt
MsgBox "Ich muss es ja auch wissen :D"
auf ok klickt das erneut eine MsgBox kommt?
Verfasst: So, 05.03.2006 19:34
von Creator
Hab nochmal etwas entworfen:
Code: Alles auswählen
Sub Fun
Dim sText As String, sAge As String
sText = InputBox ("Bitte geben sie hier Ihren Namen ein: ","Lieber Benutzer")
IF sText > 3 THEN
MsgBox "Bitte geben Sie einen richtigen Namen ein.", 9, "Fehler"
ENDIF
sAge = InputBox ("Bitte geben Sie ihr Alter ein: ","Lieber Benutzer")
IF sAge > 1 THEN
MsgBox "Bitte geben Sie ihr richtiges Alter an.", 9, "Fehler"
ENDIF
MsgBox ("Sie heissen " + sText + " und sind " + sAge + " Jahre alt. ", 64, "Text-nachricht")
End Sub
Wie kann ich es nun machen, dass wenn man hier nicht genug buchstaben eingibt, das, dass makro stopt? Und nicht die anderen MsgBoxen aufruft?
Verfasst: So, 05.03.2006 20:06
von Creator
ok hab schon, mal ne andere Frage wie kriegt man einen zeilenumbruch IN einer msgbox hin?
Verfasst: So, 05.03.2006 20:18
von kannenklaus
hallo creator
ok hab schon, mal ne andere Frage wie kriegt man einen zeilenumbruch IN einer msgbox hin?
zwischen den textstellen, die umgebrochen werdenn sollen reinsetzen.
grüße
klaus
Verfasst: So, 05.03.2006 20:38
von Creator
Danke.
Wie könnte ich mehrere Eingabefelder in eine MsgBox kriegen?
Verfasst: So, 05.03.2006 21:59
von kannenklaus
hallo creator
in einem thread immer nur eine frage posten.
Wie könnte ich mehrere Eingabefelder in eine MsgBox kriegen?
dies geht nicht mehr über eine msgbox. hierzu musst du eigene dialoge mit den entsprechenden steuerelementen in der basic-ide entwickeln.
grüße
klaus