Meine Schüler dürfen bei einer Aufgabe dreimal ein falsches Ergebnis eingeben, beim vierten Mal wird die richtige Lösung angezeigt und der Dialog geschlossen. Damit die Schüler den Fehler nachvollziehen können, bleibt die falsche Eingabe im Eingabefenster stehen - unter Windows. Beim Mac muss ich das Eingabefenster löschen, ansonsten wird eine Eingabe als zwei Fehler gewertet. Hat jemand dazu eine Idee?
Mein Code (Ausschnitt aus dem Rechentrainer):
Die Zeile:Sub start_08
DialogLibraries.LoadLibrary("Rechentrainer")
oDialog=createUnoDialog(DialogLibraries.Rechentrainer.StandardDialog)
oDialog.SetPosSize(700,150,,,3)
oTextFarbe=oDialog.getControl("Auftrag").getModel() 'Textfarbe des Auftragfeldes (richtig/falsch Meldung)
oTextFarbe.TextColor=RGB(0,0,0) 'schwarz
richtig=0
rf="los geht's"
call Aufg_08
oDialog.execute()
End sub
'*******************************************************************************************************************************************************
sub Aufg_08
aufg=aufg+1
Titel="1 mal 1"
zahl1=CInt(rnd()*8)+2
zahl2=CInt(rnd()*8)+2
Aufgabe=zahl1 & " * " & zahl2
erg=zahl1*zahl2
oDialog.GetControl("Eingabe").setFocus()
oDialog.getControl("Aufgabe").text=Aufgabe
oDialog.getControl("gleich").text=gleich
end sub
'********************************************************************************************************************************************************
Private Sub MyTextField_KeyPressed(oEvt)
If oEvt.keycode=1280 Then
Eing=oDialog.getControl("Eingabe").text
if (Eing)<>"" then
call EndeRechnen
end if
EndIf
End Sub
'********************************************************************************************************************************************************
sub EndeRechnen
richtig=0
if Eing=Erg then richtig=1
if richtig > 0 then
oTextFarbe.TextColor=RGB(0,180,70)
rf="Richtig!"
oDialog.getControl("Auftrag").text=rf
Fehler=0
oDialog.getControl("Eingabe").text=""
if aufg>=10 then
oDialog.endexecute()
exit sub
end if
Aufg_08
else
richtig=0
'oDialog.getControl("Eingabe").text=""
oTextFarbe.TextColor=RGB(255,0,0)
rf="Falsch!"
oDialog.getControl("Auftrag").text=rf
fehler=fehler+1
'print fehler 'normalerweise kann jede Aufgabe dreimal beantwortet werden
select case Fehler
case 2
rf="Falsch! Nochmal:"
case 3
rf="Immer noch falsch! Letzter Versuch:"
case 4
Fehler=0
oDialog.endexecute()
exit sub
end select
oDialog.getControl("Auftrag").text=rf
end if
end sub
muss ich nur auf dem Mac einfügen unter Windows nicht. Eine Datei zum Ausprobieren hängt an.'oDialog.getControl("Eingabe").text=""