Hilfe bei einem "Hörtest"-Script

  • Hi,
    ich hab ein Problem bei meinem Programm (was auch sonst, sonst würd ich mich ja hier nch melden...).
    Es geht um folgendes: Ich wollte so ne Art "Hörtest"-Programm schreiben, das immer einen Ton aus dem Systemlautsprecher ausgibt, und einem dann fragt, ob man was gehört hat. Das Problem ist nur, das die Funktion _antwort, die eine einfache GUI mit 2 Knöpfen erstellt und dann das Ergebnis liefert und speichert, einfach nich mehr weggeht, nachdem man auf "JA" oder "Nein" geklickt hat.Außerdem wird das Ergebnis nicht richtig bzw. gar nicht ausgegeben.

    Spoiler anzeigen

    "Hörtest"

    [autoit][/autoit] [autoit][/autoit] [autoit]

    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $beep[19]
    MsgBox(0,"Hörtest","Der Hörtest startet jetzt!")
    Beep(37,2000)
    Sleep(2000)
    $beep[0] = _antwort(0)
    For $i = 1 To 7
    $var1=$i*1000
    Beep($var1,2000)
    Sleep(2000)
    $beep[$i] = _antwort($i)
    Next
    For $i = 8 to 18
    $i2 = 1
    $var1 = 7000+200*$i2
    Beep($var1,2000)
    Sleep(2000)
    $beep[$i] = _antwort($i)
    $i2 = $i2+1
    Next
    For $i = 0 to 18
    MsgBox(0,"Ergebnis","Ihr Ergebnis beim "& $i+1 & ". Ton: " & $beep[$i])
    Exit
    Next
    Func _antwort($ant)
    Local $antwort
    $Form1 = GUICreate("Form1", 273, 98, 192, 124)
    $Button1 = GUICtrlCreateButton("Ja", 32, 56, 75, 25, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Nein", 168, 56, 75, 25, $WS_GROUP)
    $Label1 = GUICtrlCreateLabel("Konnten sie den Ton hören?", 72, 24, 139, 17)
    GUISetState(@SW_SHOW)
    Do
    $Msg = GUIGetMsg()
    Switch $Msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Msg = $Button1
    $antwort = "Positiv"
    Return $antwort
    Case $Msg = $Button2
    $antwort = "Negativ"
    Return $antwort
    EndSwitch
    Until $Msg = $Button1 or $Msg = $Button2
    EndFunc

    [/autoit]

    Ich hoffe mir kann jemand helfen und vielen Dank schon mal im vorraus :thumbup:

    Cartan12

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"

    Einmal editiert, zuletzt von cartan12 (3. November 2009 um 23:01)

  • Das Fenster löschst du mit GuiDelete ($form1)
    Allerdings verstehe ich nicht warum du für ein einfaches Ja Nein Fenster nicht einfach ne MsgBox nimmst.

    In deinem Switch-Befehl ist auch ein Fehler.
    So wie du es schreibst müsstest du select statt switch nehmen.
    Sobald du switch nimmst brauchst du das Gleichheitszeichen nicht mehr, und die Variable, die du "switchst" auch nicht.

    [autoit]

    $msg = MsgBox (4,"Form1","Konnten Sie den Ton hören?")
    Switch $msg
    Case 6
    $antwort = "Positiv"
    Return $antwort
    Case 7
    $antwort = "Negativ"
    Return $antwort
    EndSwitch

    [/autoit]

    Einmal editiert, zuletzt von MAB_Commander (3. November 2009 um 22:58)

  • thx
    na ja, das mit den GUIs muss ich mir nochmal anschauen... :S

    Spoiler anzeigen

    Grundkenntnisse in: C++, JavaScript
    Sehr gute Kenntnisse: PHP, JAVA, C und näturlich AutoIt


    Klaviatur, Anhang UDF, GDI+ Mühle

    Zitat

    "Wenn einen um 20h der Pizzadienst anruft und fragt, ob man's nur vergessen hat und ob man das gleiche
    möchte wie immer -- dann sollte man sein Bestellverhalten evtl überdenken"