Es geht dabei darum nach 10 Rechnungen eine Rückmeldung zu erhalten wie gut man war.
Dabei sollte ausgegeben werden wieviele Richtige man hatte und wie lange man brauchte.
Nun ich habe einen Weg gefunden einen Zähler zu installieren der mich zu der Prozetur Auwertung() führt und dort wird ein Meldungsfenster aufgerufen. Aber wie ich das Resultat von der Prozetur Zeit_Updaten den Wert erhalte weis ich nicht.
Danke für euer mitdenken.
hier der Code
Code: Alles auswählen
; Mit Eneumeritation wird den Konstanten eine Fortlaufende Nummer vergeben anstelle dies von Hand zu machen.
Enumeration ; hier kommen alle Windows rein
#MainWindow
EndEnumeration
Enumeration ; hier kommen alle Menüitems rein
#neu
EndEnumeration
Enumeration ; hier kommen alle Gadgets rein
#StringZahl1
#StringZahl2
#StringZahl3
#StringErgebnis
#RichtigOderFalschText
#AnzahlRichtigeText
#AnzahlRichtigeWert
#AnzahlFalscherText
#AnzahlFalscherWert
#AktuelleDauer
EndEnumeration
Anzahl_Rechnungen =0
Anzahl_Richtig = 0
Anzahl_Falsche = 0
t_start = ElapsedMilliseconds()
Procedure Zeit_Updaten(Dummy)
Shared t_start
Repeat
laufzeit_jetzt = ElapsedMilliseconds() - t_start
SetGadgetText(#AktuelleDauer, "Laufzeit:" + Str(laufzeit_jetzt/1000) + "s")
Delay(1000)
ForEver
EndProcedure
Procedure FillGadget()
SetGadgetText(#StringZahl1,Str(Random(8)+2))
SetGadgetText(#StringZahl2,Str(Random(8)+2))
SetGadgetText(#StringZahl3,"")
EndProcedure
Procedure rechne()
val1.s = GetGadgetText(#StringZahl1)
val2.s = GetGadgetText(#StringZahl2)
result = Val(val1)*Val(val2)
SetGadgetText(#StringErgebnis,Str(result))
If result = Val(GetGadgetText(#StringZahl3))
ProcedureReturn #True
EndIf
EndProcedure
Procedure Auswertung()
Shared Anzahl_Richtig
Shared Anzahl_Falsche
MessageRequester("Information", "Sie haben " + Str(Anzahl_Richtig) + " Richtige von 10 Aufgaben", #PB_MessageRequester_Ok)
End
EndProcedure
If OpenWindow(#MainWindow,0,0,200,270,"Taschenrechner",#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_MinimizeGadget)
If CreateGadgetList(WindowID(#MainWindow))
; TextGadget(#PB_Any, 0, 10, 100, 20, "Erste Zahl")
TextGadget(#StringZahl1,20,30,20,20,Str(Random(8)+2))
TextGadget(#PB_Any, 41, 30, 20, 20, "*")
TextGadget(#StringZahl2,60,30,100,20,Str(Random(8)+2))
TextGadget(#PB_Any, 0, 70, 150, 20, "Resultat eingeben")
StringGadget(#StringZahl3,0,90,100,20,"",#PB_String_Numeric)
TextGadget(#PB_Any, 0, 120, 150, 20, "Neue Rechnung mit Enter")
TextGadget(#RichtigOderFalschText, 0, 140, 150, 40, "")
TextGadget(#StringErgebnis,160,140,100,20,"")
TextGadget(#AnzahlRichtigeText, 0, 180, 100, 20, "Anzahl Richtige")
TextGadget(#AnzahlRichtigeWert, 100, 180, 30, 20, "")
TextGadget(#AnzahlFalscherText, 0, 200, 100, 20, "Anzahl Falsche")
TextGadget(#AnzahlFalscherWert, 100, 200, 30, 20, "")
TextGadget(#AktuelleDauer, 0, 230, 150, 20, "Laufzeit: " + Str(laufzeit_jetzt/1000) + "s")
AddKeyboardShortcut(#MainWindow,#PB_Shortcut_Return,#neu)
SetActiveGadget(#StringZahl3)
CreateThread(@Zeit_Updaten(),0)
EndIf
EndIf
Repeat
EventID = WaitWindowEvent()
Select EventID
Case #PB_Event_Menu
If EventMenu() = #neu
Anzahl_Rechnungen=Anzahl_Rechnungen+1
If Anzahl_Rechnungen = 11
Auswertung()
EndIf
If rechne()
Anzahl_Richtig = Anzahl_Richtig +1
SetGadgetText(#RichtigOderFalschText, "Richtig das Resultat war")
SetGadgetText(#AnzahlRichtigeWert, Str(Anzahl_Richtig))
Else
Anzahl_Falsch = Anzahl_Falsch +1
SetGadgetText(#RichtigOderFalschText, "Aber aber so was auch, das richtige Resultat lautet")
SetGadgetText(#AnzahlFalscherWert,Str(Anzahl_Falsch))
EndIf
FillGadget()
SetActiveGadget(#StringZahl3)
EndIf
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
EndSelect
Until EventID = #PB_Event_CloseWindow
End