StringTrimRight löscht alle Zeichen, statt nur 1

  • Hallo Experten,

    ich habe heut mal angefangen einen Rechner zu programmieren.
    Nun habe ich ein Problem das die Funktion _delete, die unter dem Button DEL liegt, alle Zeichen aus dem Input-Feld löscht statt nur das letzte Zeichen. Die Funktion ist im Code ganz unten ;)

    Danke schon mal!

    Spoiler anzeigen
    [autoit]

    #Include <GuiConstantsEx.au3>
    #Include <EditConstants.au3>
    #include <String.au3>

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

    Opt("GUIOnEventMode", 1)
    $mainWindow=GUICreate("Rechner", 250, 300)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_GUIEvents")
    GUISetState(@SW_SHOW, $mainWindow)
    $rechenfeld=GUICtrlCreateInput("", 10, 30, 200, 20, $ES_RIGHT)

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

    $button1=GUICtrlCreateButton("1", 10, 60, 30, 30)
    $button2=GUICtrlCreateButton("2", 50, 60, 30, 30)
    $button3=GUICtrlCreateButton("3", 90, 60, 30, 30)
    $bdelete=GUICtrlCreateButton("DEL", 130, 60, 30, 30)
    $bclear=GUICtrlCreateButton("CLEAR", 170, 60, 40, 30)

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

    $button4=GUICtrlCreateButton("4", 10, 100, 30, 30)
    $button5=GUICtrlCreateButton("5", 50, 100, 30, 30)
    $button6=GUICtrlCreateButton("6", 90, 100, 30, 30)
    $bplus=GUICtrlCreateButton("+", 130, 100, 30, 30)
    $bminus=GUICtrlCreateButton("-", 170, 100, 30, 30)

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

    $button7=GUICtrlCreateButton("7", 10, 140, 30, 30)
    $button8=GUICtrlCreateButton("8", 50, 140, 30, 30)
    $button9=GUICtrlCreateButton("9", 90, 140, 30, 30)
    $bmal=GUICtrlCreateButton("*", 130, 140, 30, 30)
    $bdurch=GUICtrlCreateButton("/", 170, 140, 30, 30)

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

    $button0=GUICtrlCreateButton("0", 10, 180, 30, 30)
    $bkomma=GUICtrlCreateButton(",", 50, 180, 30, 30)
    $bistGleich=GUICtrlCreateButton("=", 90, 180, 30, 30)
    $bklammerAuf=GUICtrlCreateButton("(", 130, 180, 30, 30)
    $bklammerZu=GUICtrlCreateButton(")", 170, 180, 30, 30)

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

    GUICtrlSetOnEvent($button1, "_func1")
    GUICtrlSetOnEvent($button2, "_func2")
    GUICtrlSetOnEvent($button3, "_func3")
    GUICtrlSetOnEvent($button4, "_func4")
    GUICtrlSetOnEvent($button5, "_func5")
    GUICtrlSetOnEvent($button6, "_func6")
    GUICtrlSetOnEvent($button7, "_func7")
    GUICtrlSetOnEvent($button8, "_func8")
    GUICtrlSetOnEvent($button9, "_func9")
    GUICtrlSetOnEvent($button0, "_func0")
    GUICtrlSetOnEvent($bkomma, "_funckomma")
    GUICtrlSetOnEvent($bistgleich, "_funcistgleich")
    GUICtrlSetOnEvent($bplus, "_funcplus")
    GUICtrlSetOnEvent($bminus, "_funcminus")
    GUICtrlSetOnEvent($bmal, "_funcmal")
    GUICtrlSetOnEvent($bdurch, "_funcdurch")
    GUICtrlSetOnEvent($bklammerAuf, "_funcauf")
    GUICtrlSetOnEvent($bklammerZu, "_funczu")
    GUICtrlSetOnEvent($bclear, "_funcclear")
    GUICtrlSetOnEvent($bdelete, "_delete")

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

    $auslesen=GUICtrlRead($rechenfeld)

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

    While True
    Sleep(10)
    WEnd

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

    Func _GUIEvents()
    Select
    Case @GUI_CtrlId = $GUI_EVENT_CLOSE
    Exit
    EndSelect
    EndFunc

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

    Func _func1()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "1")
    EndFunc

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

    Func _func2()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "2")
    EndFunc

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

    Func _func3()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "3")
    EndFunc

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

    Func _func4()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "4")
    EndFunc

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

    Func _func5()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "5")
    EndFunc

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

    Func _func6()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "6")
    EndFunc

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

    Func _func7()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "7")
    EndFunc

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

    Func _func8()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "8")
    EndFunc

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

    Func _func9()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "9")
    EndFunc

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

    Func _func0()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "0")
    EndFunc

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

    Func _funckomma()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & ",")
    EndFunc

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

    Func _funcistGleich()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "0")
    EndFunc

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

    Func _funcminus()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "-")
    EndFunc

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

    Func _funcplus()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "+")
    EndFunc

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

    Func _funcmal()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "*")
    EndFunc

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

    Func _funcdurch()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "/")
    EndFunc

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

    Func _funcauf()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & "(")
    EndFunc

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

    Func _funczu()
    GUICtrlSetData($rechenfeld, GUICtrlRead($rechenfeld) & ")")
    EndFunc

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

    Func _funcclear()
    GUICtrlSetData($rechenfeld, "")
    EndFunc

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

    Func _delete() ;<--- löscht alles, soll bloß letztes Zeichen entfernen!!!
    GUICtrlSetData($rechenfeld, StringTrimRight($auslesen, 1))
    EndFunc

    [/autoit]

    Einmal editiert, zuletzt von NSBM (4. Juni 2009 um 21:00)

  • ersetze mit:

    Spoiler anzeigen
    [autoit]

    Func _delete() ;<--- löscht alles, soll bloß letztes Zeichen entfernen!!!
    GUICtrlSetData($rechenfeld, StringTrimRight(GUICtrlRead($rechenfeld), 1))
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)