Eigener Taschenrechner

  • Ich stell dann mal meinen 1. funktionierenden Taschenrechner Public :D
    Sogar diesmal mit Funktion :P
    Bei dem Script wurde mir etwas geholfen von L3viathan . Thx.

    Hier die Source :

    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Taschenrechner create by volle", 154, 254, 303, 187)
    $Button1 = GUICtrlCreateButton("7", 16, 96, 25, 25, 0)
    $Button4 = GUICtrlCreateButton("3", 80, 160, 25, 25, 0)
    $Button5 = GUICtrlCreateButton("5", 48, 128, 25, 25, 0)
    $Button6 = GUICtrlCreateButton("*", 112, 96, 25, 25, 0)
    $Button7 = GUICtrlCreateButton("=", 80, 192, 25, 25, 0)
    $Button9 = GUICtrlCreateButton("+", 112, 192, 25, 25, 0)
    $Button11 = GUICtrlCreateButton("AC", 16, 56, 25, 25, 0)
    $Button12 = GUICtrlCreateButton("2", 48, 160, 25, 25, 0)
    $Button13 = GUICtrlCreateButton("6", 80, 128, 25, 25, 0)
    $Button15 = GUICtrlCreateButton("4", 16, 128, 25, 25, 0)
    $Button17 = GUICtrlCreateButton("1", 16, 160, 25, 25, 0)
    $Button18 = GUICtrlCreateButton("-", 112, 160, 25, 25, 0)
    $Button19 = GUICtrlCreateButton("/", 112, 128, 25, 25, 0)
    $Button20 = GUICtrlCreateButton("8", 48, 96, 25, 25, 0)
    $Button21 = GUICtrlCreateButton("9", 80, 96, 25, 25, 0)
    $Button22 = GUICtrlCreateButton(".", 48, 192, 25, 25, 0)
    $Button24 = GUICtrlCreateButton("0", 16, 192, 25, 25, 0)
    $Input1 = GUICtrlCreateInput("", 8, 16, 137, 21)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "7")
    Case $Button4
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "3")
    Case $Button5
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "5")
    Case $Button6
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "*")
    Case $Button7
    GUICtrlSetData($Input1, Execute(GUICtrlRead($Input1)));;;
    Case $Button9
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "+")
    Case $Button11;;;
    GUICtrlSetData($Input1, "")
    Case $Button12
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "2")
    Case $Button13
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "6")
    Case $Button15
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "4")
    Case $Button17
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "1")
    Case $Button18
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "-")
    Case $Button19
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "/")
    Case $Button20
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "8")
    Case $Button21
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "9")
    Case $Button22
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & ".")
    Case $Button24
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "0")
    EndSwitch
    WEnd

    [/autoit]

    //Edit: Ich hab jetzt das alte Source rausgenommen und das neue eingesetzt :)
    Beim alten Script hatte auch die AC Taste nicht funktioniert wie vielleicht auch manche mit bekommen hatten.


    Mit freundlichen Grüßen

    volle :D


    P.S.: Kritik und Lob ist auch erwünscht :)

  • Hallo volle,

    für Leute welche die Zahlen lieber mit der Tastatur eingeben als mit der Maus zu klicken solltest du Zeile 40 so abändern:

    [autoit]

    GUICtrlSetData($Input1, Execute(StringReplace(GUICtrlRead($Input1),",",".")));;;

    [/autoit]

    mfg (Auto)Bert

  • So funktioniert es, die AC taste... du darfst nicht GuiCtrlRead & "" machen. Du musst das GuiCtrlRead wegmachen. Du willst ja die Input1 in "" ändern, da brauchst du nicht groß noch was auslesen, also:

    [autoit]

    GuiCtrlSetData($Input1, "")

    [/autoit]

    mfg

    edit:// WTF admins die autoit funktion lässt zu wünschen übrig... wieso setzt der meinen script zusammen? hab den script angehängt

  • @BurakSZ: ich hab gar nichts zusammen gesetzt aus deinem script , keine ahnung was du damit meinst 8|
    wenn du was zu bemängeln hast dann ne PN an mich

    mfg

    Mit freundlichen Grüßen

    volle

  • Ich meinte garnicht dicht? Da steht "admins".... Damit waren die gemeint, wenn ich die AutoIT Funktion hier im Forum mache dann wird man Script in einer Reihe hintereinander gereiht. Also 1 Zeile mit dem ganzen Script.

    mfg

    p.s. der angehängte script ist von DIR. ich hab den so überarbeitet das die ac-taste funkt.

  • volle,

    ich denke nicht, dass er Dich gemeint hat ;)

    Aber siehst Du, kaum was vernünftiges gemacht, schon passt das...

    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. ;)

  • Hallo volle,

    ich habe dein Skript noch einmal an 2 3 Stellen abgeändert, damit man es leichter über die Tastatur bedienen kann:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Taschenrechner create by volle", 154, 254, 303, 187)
    $Button1 = GUICtrlCreateButton("7", 16, 96, 25, 25)
    $Button4 = GUICtrlCreateButton("3", 80, 160, 25, 25)
    $Button5 = GUICtrlCreateButton("5", 48, 128, 25, 25)
    $Button6 = GUICtrlCreateButton("*", 112, 96, 25, 25)
    $Button7 = GUICtrlCreateButton("=", 80, 192, 25, 25, $BS_DEFPUSHBUTTON) ;<========= Man kann auch Enter-Taste anstelle = nehmen
    $Button9 = GUICtrlCreateButton("+", 112, 192, 25, 25)
    $Button11 = GUICtrlCreateButton("AC", 16, 56, 25, 25)
    $Button12 = GUICtrlCreateButton("2", 48, 160, 25, 25)
    $Button13 = GUICtrlCreateButton("6", 80, 128, 25, 25)
    $Button15 = GUICtrlCreateButton("4", 16, 128, 25, 25)
    $Button17 = GUICtrlCreateButton("1", 16, 160, 25, 25)
    $Button18 = GUICtrlCreateButton("-", 112, 160, 25, 25)
    $Button19 = GUICtrlCreateButton("/", 112, 128, 25, 25)
    $Button20 = GUICtrlCreateButton("8", 48, 96, 25, 25)
    $Button21 = GUICtrlCreateButton("9", 80, 96, 25, 25)
    $Button22 = GUICtrlCreateButton(".", 48, 192, 25, 25)
    $Button24 = GUICtrlCreateButton("0", 16, 192, 25, 25)
    $Input1 = GUICtrlCreateInput("", 8, 16, 137, 21)
    GUISetState(@SW_SHOW)
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button1
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "7")
    Case $Button4
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "3")
    Case $Button5
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "5")
    Case $Button6
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "*")
    Case $Button7
    GUICtrlSetData($Input1, Execute(StringReplace(GUICtrlRead($Input1),",","."))) ;<========= Komma wird Punkt
    Case $Button9
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "+")
    Case $Button11;;;
    GUICtrlSetData($Input1, "")
    Case $Button12
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "2")
    Case $Button13
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "6")
    Case $Button15
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "4")
    Case $Button17
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "1")
    Case $Button18
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "-")
    Case $Button19
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "/")
    Case $Button20
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "8")
    Case $Button21
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "9")
    Case $Button22
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & ".")
    Case $Button24
    GUICtrlSetData($Input1, GUICtrlRead($Input1) & "0")
    EndSwitch
    ControlFocus($Form1, '', $Input1); ;<=========== damit das Input immer den Focus hat
    WEnd

    [/autoit]

    Die Änderungen sind im Skript gekennzeichnet und kommentiert,

    P(r)ost 2000
    mfg (Auto)Bert

    2 Mal editiert, zuletzt von AutoBert (15. Mai 2010 um 15:57)