MsgBox prob

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

MsgBox prob

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag 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
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

Ja aber wie mach ich es denn, das bei jeder Schaltfläche eine andere MsgBox auftaucht?

Bin noch ein noob dadrin ;)
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag 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
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

ich wollte jetzt nicht unhöflich vorkommen, hätte nur gerne eine erklärung zum code gehabt
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag 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
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag 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?
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag 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?
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

ok hab schon, mal ne andere Frage wie kriegt man einen zeilenumbruch IN einer msgbox hin?
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Beitrag von kannenklaus »

hallo creator
ok hab schon, mal ne andere Frage wie kriegt man einen zeilenumbruch IN einer msgbox hin?

Code: Alles auswählen

+ Chr(13) + 
zwischen den textstellen, die umgebrochen werdenn sollen reinsetzen.

grüße

klaus
Creator
**
Beiträge: 20
Registriert: So, 05.03.2006 00:12

Beitrag von Creator »

Danke.

Wie könnte ich mehrere Eingabefelder in eine MsgBox kriegen?
kannenklaus
*****
Beiträge: 319
Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt

Beitrag 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
Antworten