Einfacher rechner

  • Hi Leute,
    also ich hab erst vor kurzem mit dem scripten angefangen und bin deswegen noch ziemlich neu in dem gebiet.
    nun zum problem ich wollte zum anfang mal mit was einfachen anfangen also mit nem einfachen rechner der +, -, *, / rechnen kann
    hab jetzt folgendes problem, ich wollte es so machen das ich per taste im rechner eine zahl ins eingabefeld setze also ohne tastatur nur bekomm ich es irgendwie nicht hin bitte um hilfe.

    hier der script wie er bis jetzt aussieht

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 439, 305, 189, 123)
    $Input1 = GUICtrlCreateInput("Zahl1", 24, 16, 409, 21)
    $Input2 = GUICtrlCreateInput("Zahl2", 24, 56, 409, 21)
    $Button1 = GUICtrlCreateButton("Addieren", 24, 104, 409, 33, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Subtrahieren", 24, 152, 409, 33, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Dividieren", 24, 200, 409, 33, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Multiplizieren", 24, 248, 409, 33, $WS_GROUP)
    $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Admin\Eigene Dateien\Eigene Bilder\BFBC2wallpaper.jpg", 0, 0, 457, 321, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 + $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    Case $Button2
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 - $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    Case $Button3
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 / $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    Case $Button4
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 * $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    EndSwitch
    WEnd

    [/autoit]

    Einmal editiert, zuletzt von Mr.Toasty (25. August 2010 um 15:28)

  • Danke für die schnelle Antwort aber ich muss ganz ehrlich zugeben ich verstehe nur bahnhof :D

    sry für meine unwissenheit :D

    ps.: bugfix es währe sehr net wen du mir ein beispiel zeigen könntest wie es geht

    Einmal editiert, zuletzt von Mr.Toasty (24. August 2010 um 20:52)

    • Offizieller Beitrag

    Hier dein Bsp., nur an den genannten Punkten geändert.

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 439, 305, 189, 123)
    $Input1 = GUICtrlCreateInput("", 24, 16, 409, 21, $ES_NUMBER)
    $Input2 = GUICtrlCreateInput("", 24, 56, 409, 21, $ES_NUMBER)
    $Button1 = GUICtrlCreateButton("Addieren", 24, 104, 409, 33, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("Subtrahieren", 24, 152, 409, 33, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("Dividieren", 24, 200, 409, 33, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("Multiplizieren", 24, 248, 409, 33, $WS_GROUP)
    ;~ $Pic1 = GUICtrlCreatePic("C:\Dokumente und Einstellungen\Admin\Eigene Dateien\Eigene Bilder\BFBC2wallpaper.jpg", 0, 0, 457, 321, BitOR($SS_NOTIFY,$WS_GROUP,$WS_CLIPSIBLINGS))
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 + $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    Case $Button2
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 - $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    Case $Button3
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 / $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    Case $Button4
    $Zahl1 = GUICtrlRead ($input1)
    $Zahl2 = GUICtrlRead ($input2)
    $Ergebnis = $Zahl1 * $Zahl2
    MsgBox (0, "ergebniss", $Ergebnis)
    EndSwitch
    WEnd

    [/autoit]
  • also erstma danke und sry von mir ich hab die frage falsch gestellt, der rechner den ich hatte hat gut funktioniert aber das was ich wollte war das ich in den input ohne tastatur nur mit nem button eine zahl eingebe bzw die zahl dan erscheintalso ich drück den butten und zb ne 1 erscheint im input(das modell vom rechner habe ich dazu auch geändert was ich eig. gleich hätte machen sollen)

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1_1 = GUICreate("Form1", 331, 262, 192, 124)
    $Input1 = GUICtrlCreateInput("Input1", 32, 24, 121, 21)
    $Button1 = GUICtrlCreateButton("7", 32, 80, 41, 41, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("8", 88, 80, 41, 41, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("9", 144, 80, 41, 41, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("4", 32, 136, 41, 41, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("5", 88, 136, 41, 41, $WS_GROUP)
    $Button7 = GUICtrlCreateButton("6", 144, 136, 41, 41, $WS_GROUP)
    $Button8 = GUICtrlCreateButton("1", 32, 192, 41, 41, $WS_GROUP)
    $Button9 = GUICtrlCreateButton("2", 88, 192, 41, 41, $WS_GROUP)
    $Button10 = GUICtrlCreateButton("3", 144, 192, 41, 41, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("+", 208, 80, 89, 33, $WS_GROUP)
    $Button11 = GUICtrlCreateButton("-", 208, 120, 89, 33, $WS_GROUP)
    $Button12 = GUICtrlCreateButton("*", 208, 160, 89, 33, $WS_GROUP)
    $Button13 = GUICtrlCreateButton("/", 208, 200, 89, 33, $WS_GROUP)
    $Input2 = GUICtrlCreateInput("Input2", 176, 24, 121, 21)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

    [/autoit]
  • ich kann dir ein einfaches beispiel von mir geben

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3> ; die includes

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

    $Form1 = GUICreate("Mathe Genie", 476, 378)
    GUISetFont(10, 800, 0, "Hobo Std")
    GUISetBkColor(0xA6CAF0) ; erstellt eine gui mit neuer standart schrift und bk farbe
    $Input1 = GUICtrlCreateInput("", 48, 24, 297, 33)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xC0DCC0) ;erstelt einen input mit bk farbe
    $ButtonGleich = GUICtrlCreateButton("=", 360, 24, 35, 33, $WS_GROUP)
    GUICtrlSetBkColor(-1, 0x00FF00)
    $ButtonClear = GUICtrlCreateButton("Clear", 285, 65, 59, 33, $WS_GROUP)
    GUICtrlSetBkColor(-1, 0xFF0000)
    $ButtonBack = GUICtrlCreateButton("Back", 208, 65, 43, 33, $WS_GROUP)
    GUICtrlSetBkColor(-1, 0x0000FF) ;erstelt den "=", "clear", "back" button mit eigener farbe
    $Group1 = GUICtrlCreateGroup("Operatoren", 8, 100, 121, 265)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xFFFF00)
    $ButtonPlus = GUICtrlCreateButton("+", 24, 124, 35, 33, $WS_GROUP)
    $ButtonMinus = GUICtrlCreateButton("-", 80, 124, 35, 33, $WS_GROUP)
    $ButtonMal = GUICtrlCreateButton("*", 24, 168, 35, 33, $WS_GROUP)
    $ButtonGeteilt = GUICtrlCreateButton("/", 80, 168, 35, 33, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; erstellt eine gruppe in der die operatoren buttons "+", "-", "*", "/" sind
    $Group2 = GUICtrlCreateGroup("Zahlen", 208, 100, 193, 265)
    GUICtrlSetColor(-1, 0x000000)
    GUICtrlSetBkColor(-1, 0xFFFF00)
    $Button1 = GUICtrlCreateButton("1", 224, 124, 35, 33, $WS_GROUP)
    $Button2 = GUICtrlCreateButton("2", 280, 124, 35, 33, $WS_GROUP)
    $Button3 = GUICtrlCreateButton("3", 336, 124, 35, 33, $WS_GROUP)
    $Button4 = GUICtrlCreateButton("4", 224, 172, 35, 33, $WS_GROUP)
    $Button5 = GUICtrlCreateButton("5", 280, 172, 35, 33, $WS_GROUP)
    $Button6 = GUICtrlCreateButton("6", 336, 172, 35, 33, $WS_GROUP)
    $Button7 = GUICtrlCreateButton("7", 224, 228, 35, 33, $WS_GROUP)
    $Button8 = GUICtrlCreateButton("8", 280, 228, 35, 33, $WS_GROUP)
    $Button9 = GUICtrlCreateButton("9", 336, 228, 35, 33, $WS_GROUP)
    $Button0 = GUICtrlCreateButton("0", 280, 276, 35, 33, $WS_GROUP)
    $ButtonKomma = GUICtrlCreateButton(",", 336, 276, 35, 33, $WS_GROUP)
    GUICtrlCreateGroup("", -99, -99, 1, 1) ; erstellt eine gruppe in der die buttons 0-9 sind
    GUISetState(@SW_SHOW) ; zeigt die gui an

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

    While 1 ;endlosschleife
    $nMsg = GUIGetMsg() ;fragt ab ob ein ereignis passiert ist
    Switch $nMsg ; vergleicht das ereigniss und wählt aus womit es übereinstimmt
    Case $GUI_EVENT_CLOSE ; der X button
    Exit
    Case $Button0
    _write("0")
    Case $Button1
    _write("1")
    Case $Button2
    _write("2")
    Case $Button3
    _write("3")
    Case $Button4
    _write("4")
    Case $Button5
    _write("5")
    Case $Button6
    _write("6")
    Case $Button7
    _write("7")
    Case $Button8
    _write("8")
    Case $Button9
    _write("9")
    Case $ButtonKomma
    _write(",")
    Case $ButtonMinus
    _write("-")
    Case $ButtonPlus
    _write("+")
    Case $ButtonMal
    _write("*")
    Case $ButtonGeteilt ; einer der buttons wurde gedrückt, die funktion _write()
    _write("/")
    Case $ButtonBack ; der input wird ausgelessen und um 1 von rechts gekürtzt , danach wird der input mit dem neuen text aktualiesiert
    $trim = StringTrimRight( GUICtrlRead( $Input1 ), 1)
    GUICtrlSetData( $Input1, $trim)
    Case $ButtonClear ; setzt den input text auf nichts
    GUICtrlSetData( $Input1, "" )
    Case $ButtonGleich ; liest den input aus rechnet alles aus und schreibt das ergebniss in input
    GUICtrlSetData( $Input1, Execute(GUICtrlRead( $Input1 )))
    EndSwitch
    WEnd

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

    Func _write( $text ) ; erstellt die funktion _write() mit dem text operator

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

    GUICtrlSetData( $Input1, GUICtrlRead( $Input1 ) & $text) ; liest den input aus und fügt das neue zeichen ein was mit _write aufgerufen wurde

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

    EndFunc

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

    Exit

    [/autoit]

    müste einfach zu verstehen sein wenn nicht erklär ichs dir :thumbup:

    EDIT\\ hab dir im script alles beschrieben

    Einmal editiert, zuletzt von Bulli (24. August 2010 um 22:00)

  • Danke für den script genau sowass wollte ich jetzt weis ich endlich wies geht.

    ps.: sogar mit beschreibung, danke :D