Taschenrechner

  • Hi ich habe mal einen Taschenrechner gemacht

    Spoiler anzeigen
    [autoit]

    ; SB_Taschenrechner_by_Simon
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <String.au3>

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

    HotKeySet("{F1}", "_help")

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

    GUICreate("SB Taschenrechner", 320, 140, Default, Default, $WS_POPUP + $WS_BORDER)
    GUISetBkColor(0xCDAD00)
    $inp = GUICtrlCreateInput("", 10, 10, 300, 20)
    GUICtrlSetState(-1, $GUI_DISABLE)
    $1 = GUICtrlCreateButton("1", 10, 40, 30, 30)
    $2 = GUICtrlCreateButton("2", 40, 40, 30, 30)
    $3 = GUICtrlCreateButton("3", 70, 40, 30, 30)
    $4 = GUICtrlCreateButton("4", 100, 40, 30, 30)
    $5 = GUICtrlCreateButton("5", 130, 40, 30, 30)
    $6 = GUICtrlCreateButton("6", 160, 40, 30, 30)
    $7 = GUICtrlCreateButton("7", 190, 40, 30, 30)
    $8 = GUICtrlCreateButton("8", 220, 40, 30, 30)
    $9 = GUICtrlCreateButton("9", 250, 40, 30, 30)
    $0 = GUICtrlCreateButton("0", 280, 40, 30, 30)
    $plus = GUICtrlCreateButton(" + ", 10, 70, 30, 30)
    $minus = GUICtrlCreateButton(" - ", 40, 70, 30, 30)
    GUICtrlSetFont(-1, 15)
    $div = GUICtrlCreateButton(" / ", 70, 70, 30, 30)
    $mult = GUICtrlCreateButton(" * ", 100, 70, 30, 30)
    GUICtrlSetFont(-1, 15)
    $kl = GUICtrlCreateButton("(", 130, 70, 30, 30)
    $lk = GUICtrlCreateButton(")", 160, 70, 30, 30)
    $kom = GUICtrlCreateButton(",", 190, 70, 30, 30)
    GUICtrlSetFont(-1, 15)
    $z = GUICtrlCreateButton("C", 220, 70, 30, 30)
    GUICtrlSetTip(-1, " Neue Rechnung ")
    $ex = GUICtrlCreateButton("X", 250, 70, 30, 30)
    GUICtrlSetTip(-1, " Den Rechner beenden ")
    $erg = GUICtrlCreateButton("=", 280, 70, 30, 30)
    $o = GUICtrlCreateRadio(" mit Tastatureingabe ", 10, 110)
    $m = GUICtrlCreateRadio(" ohne Tastatureingabe ", 150, 110)
    GUICtrlSetState(-1, $GUI_CHECKED)

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

    GUISetState()

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

    While 1
    Switch GUIGetMsg()
    Case - 3
    Exit
    Case $ex
    Exit
    Case $z
    GUICtrlSetData($inp, "")
    Case $1
    GUICtrlSetData($inp, GUICtrlRead($inp) & "1")
    Case $2
    GUICtrlSetData($inp, GUICtrlRead($inp) & "2")
    Case $3
    GUICtrlSetData($inp, GUICtrlRead($inp) & "3")
    Case $4
    GUICtrlSetData($inp, GUICtrlRead($inp) & "4")
    Case $5
    GUICtrlSetData($inp, GUICtrlRead($inp) & "5")
    Case $6
    GUICtrlSetData($inp, GUICtrlRead($inp) & "6")
    Case $7
    GUICtrlSetData($inp, GUICtrlRead($inp) & "7")
    Case $8
    GUICtrlSetData($inp, GUICtrlRead($inp) & "8")
    Case $9
    GUICtrlSetData($inp, GUICtrlRead($inp) & "9")
    Case $plus
    GUICtrlSetData($inp, GUICtrlRead($inp) & "+")
    Case $minus
    GUICtrlSetData($inp, GUICtrlRead($inp) & "-")
    Case $div
    GUICtrlSetData($inp, GUICtrlRead($inp) & "/")
    Case $mult
    GUICtrlSetData($inp, GUICtrlRead($inp) & "*")
    Case $kl
    GUICtrlSetData($inp, GUICtrlRead($inp) & "(")
    Case $lk
    GUICtrlSetData($inp, GUICtrlRead($inp) & ")")
    Case $erg
    $read = GUICtrlRead($inp)
    If $read = "" Then
    MsgBox(16, "Fehler", "Sie müssen etwas eingeben")
    Else
    $ergebnis = _StringAddThousandsSep(StringReplace(Execute(StringReplace($read, ",", ".")), ".", ","))
    MsgBox(0, "Dein Ergebnis", $ergebnis)
    $bos = MsgBox(4, "Kopieren", "Willst du das Eregebnis Kopieren?")
    If $bos = 6 Then
    ClipPut($read)
    EndIf
    EndIf
    Case $0
    GUICtrlSetData($inp, GUICtrlRead($inp) & "0")
    Case $kom
    GUICtrlSetData($inp, GUICtrlRead($inp) & ".")
    Case $m
    GUICtrlSetState($inp, $GUI_DISABLE)
    Case $o
    GUICtrlSetState($inp, $GUI_ENABLE)
    EndSwitch
    WEnd

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

    Func _help()
    MsgBox(0, "Hilfe", "Hier sind alle zeichen erklärt" & @CRLF & @CRLF & " - 1 = 1" & @CRLF & " - 2 = 2" & @CRLF & " - 3 = 3" & @CRLF & " - 4 = 4" & @CRLF & " - 5 = 5" & @CRLF & " - 6 = 6" & @CRLF & " - 7 = 7" & @CRLF & " - 8 = 8" & @CRLF & " - 9 = 9" & @CRLF & " - + = +" & @CRLF & " - - = -" & @CRLF & " - / = geteilt" & @CRLF & " - * = mal" & @CRLF & " - ( = klammer auf" & @CRLF & " - ) = Klammer zu" & @CRLF & " - . = Komma" & @CRLF & " - del = Löschen aller Zeichen" & " - X = Exit" & @CRLF & " - = = Ergebnis ausrechnen" & @CRLF & "Ich hoffe ihr kennt euch jetzt mit der Button belegung aus !!!" & @TAB & @TAB & @TAB & @TAB)
    EndFunc ;==>_help

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

    4 Mal editiert, zuletzt von simon (19. Mai 2009 um 14:04)

  • Ich glaube Du hast die "0" vergessen. ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Wenn Du schon dabei bist, dann bitte auch ein Exit-Button ;)

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Ich hab dir mal dein Script für Lernzwecke ein wenig gekürzt ;)

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
    #include <EditConstants.au3>
    Opt("GuiOnEventMode",1)
    GUICReate("GUI",320,110,Default,Default,$WS_POPUP + $WS_BORDER)
    GUISETBKColor(0xCDAD00)
    $inp = GUICtrlCreateInput("",10,10,300,20,$ES_READONLY)
    $Zeichen = StringSplit("1,2,3,4,5,6,7,8,9,0,+,-,/,*,(,),.,del,X,=", ",")
    Dim $Button[21]
    For $i = 1 To 20
    $Button[$i] = GUICtrlCreateButton($Zeichen[$i],Mod($i,11)*30+10-($i < 11) * 30,Int($i/11)*30+40,30,30)
    GuiCtrlSetOnEvent(-1, "Calc")
    Next
    GUISETSTATE()

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

    While 1
    sleep(100)
    WEnd

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

    Func Calc()
    Switch @GUI_CtrlId
    Case @GUI_CtrlId < 21
    GuiCtrlSetData($inp,GuiCtrlRead(@Gui_CtrlId),1)
    Case 21
    GuiCtrlSetData($inp,"")
    Case 22
    Exit
    Case 23
    If GuiCtrlRead($inp) = "" Then
    MsgBox(16,"Fehler","Sie müssen etwas eingeben")
    Else
    $ergebnis = Execute(GuiCtrlRead($inp))
    MsgBox(0,"Dein Ergebnis",$ergebnis)
    If MsgBox(4,"Kopieren","Willst du das Eregebnis Kopieren?") = 6 Then
    ClipPut($ergebnis)
    EndIf
    EndIf
    EndSwitch
    EndFunc

    [/autoit]
  • @ChaosKeks schön aber ich lasse es mal so wie ich es habe da kenne ich mich besser aus

  • Hallo Simon,

    nicht nur jedes Skript ist anders, auch dein Taschenrechner unterscheidet sich deutlich von den mir bisher bekannten. Üblicherweise werden die Zahlen in einem Block von 3 Reihen mal 3 (1-9) und 1 Reihe mit der 0 dargestellt. Die Befehlstasten werden auf diese 4 Reihen verteilt. Auch vermisse ich die Eingabemöglichkeit über Tastatur,

    mfg (Auto)Bert

  • autoBert ich habe hald mal eine andere anordnung gemacht :)
    Und stat Tastatur wolte ich die buttons aber es fehlt doch eigentlich keine zeichen oder?

  • Hallo simon,

    autoBert ich habe hald mal eine andere anordnung gemacht
    Und stat Tastatur wolte ich die buttons aber es fehlt doch eigentlich keine zeichen oder?


    Die Anornung ist halt ungewohnt. Vor allem das X zum beenden musste ich lange suchen
    Ich weiß nicht was du unter Zeichen verstehst, falls du die Zahlen meinst, die sind vollständig. Bei den anderen Tasten hast du aber noch welche nicht belegt, nämlich die Klammerebenen. Wünsche für weiteres gib es sicher auch noch siehe modulo-Wunsch von @ L3viathan2142, ich benutz weiterhin den Rechner von Windows,

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (17. Mai 2009 um 18:27)

  • Das brauch ich doch nich neue version #1
    Neues:
    - Tastatur eingabe möglich
    - Hilfe per F1