[Help] Taschen Rechner

08/23/2011 00:11 Kurosaki'#1
Hab da ein Taschenrechner in AutoIt Gecodet.
"+" "-" "*" "1" "2" "3" Funktioniert alles, aber sobald ich "%" rein mache, kommt immer eine leere Ergebnis raus.
Hier mal der Script

PHP Code:
TRechner Demo
#include <GUIConstants.au3>


GUICreate("Taschen Rechner Created by Divine."506352193115)
$input GUICtrlCreateInput(""101030020)
$bnPlus GUICtrlCreateButton("+"10407530)
$bnMinus GUICtrlCreateButton("-"85407530)
$bnDiv GUICtrlCreateButton("/"160407530)
$bnMulti GUICtrlCreateButton("*"235407530)
$bnWurzel GUICtrlCreateButton("v"818481330)
$bn7 GUICtrlCreateButton("7"10707530)
$bn8 GUICtrlCreateButton("8"85707530)
$bn9 GUICtrlCreateButton("9"160707530)
$bnC GUICtrlCreateButton("C"235707560)
$bn4 GUICtrlCreateButton("4"101007530)
$bn5 GUICtrlCreateButton("5"851007530)
$bn6 GUICtrlCreateButton("6"1601007530)
$bn1 GUICtrlCreateButton("1"101307530)
$bn2 GUICtrlCreateButton("2"851307530)
$bn3 GUICtrlCreateButton("3"1601307530)
$Button1 GUICtrlCreateButton("%"8312973330)
$Label1 GUICtrlCreateLabel("Taschen Rechner was Created by Divine."26432023625)
$bnResultat GUICtrlCreateButton("="2351307560)
$bn0 GUICtrlCreateButton("0"1016015030)
$bnKoma GUICtrlCreateButton(","1601607530)
$Pic1 GUICtrlCreatePic(@ScriptDir '\Bild.jpg'400208100100)

GUISetState()

While 
1
    
Switch GUIGetMsg()
        Case - 
3
            MsgBox
(64"Viel Spaß"_
            
"Viel Spaß wünscht euch Divine." & @TAB3)
            Exit
        Case 
$bnC
            GUICtrlSetData
($input"")
        Case 
$bn1
            GUICtrlSetData
($inputGUICtrlRead($input) & "1")
        Case 
$bn2
            GUICtrlSetData
($inputGUICtrlRead($input) & "2")
        Case 
$bn3
            GUICtrlSetData
($inputGUICtrlRead($input) & "3")
        Case 
$bn4
            GUICtrlSetData
($inputGUICtrlRead($input) & "4")
        Case 
$bn5
            GUICtrlSetData
($inputGUICtrlRead($input) & "5")
        Case 
$bn6
            GUICtrlSetData
($inputGUICtrlRead($input) & "6")
        Case 
$bn7
            GUICtrlSetData
($inputGUICtrlRead($input) & "7")
        Case 
$bn8
            GUICtrlSetData
($inputGUICtrlRead($input) & "8")
        Case 
$bn9
            GUICtrlSetData
($inputGUICtrlRead($input) & "9")
        Case 
$bnPlus
            GUICtrlSetData
($inputGUICtrlRead($input) & " + ")
        Case 
$bnMinus
            GUICtrlSetData
($inputGUICtrlRead($input) & " - ")
        Case 
$bnDiv
            GUICtrlSetData
($inputGUICtrlRead($input) & " / ")
        Case 
$bnMulti
            GUICtrlSetData
($inputGUICtrlRead($input) & " * ")
        Case 
$bn0
            GUICtrlSetData
($inputGUICtrlRead($input) & "0")
        Case 
$bnKoma
            GUICtrlSetData
($inputGUICtrlRead($input) & ".")
        Case 
$Button1
            GUICtrlSetData
($inputGUICtrlRead($input) & "%")
        Case 
$bnWurzel
            GUICtrlSetData
($inputGUICtrlRead($input) & "v")
        Case 
$bnResultat
            GUICtrlSetData
($inputExecute(GUICtrlRead($input)))
    EndSwitch
WEnd

Ende 
08/23/2011 00:31 BlackHybrid#2
Das liegt daran, dass % kein gültiger Operator ist.
Müsstest wenn dann die Zahlen auslesen und extra die Prozentzahl ausrechnen.
08/23/2011 01:06 Kurosaki'#3
Vielleicht könntest du mir den Vollständigen Code sagen xP
Verstehe deine Antwort nicht ganz ô.o
08/23/2011 01:23 BlackHybrid#4
Die Sache ist die, dass % kein richtiger Operator wie *+/ ist.
Es ist lediglich das gleiche wie ein Buchstabe.
Du kannst das ganze mit GUICtrlRead auslesen und dann zerlegen.
Sagen wir mal du hast 100*1% dann benutzt du StringSplit mit * als delimiter
und rechnest das erste Array, das zurück gegeben wird (in dem Fall 100) durch 100 und dann mal den 2. Array (hier 1). Am besten lässt du dir vorher noch mit StringInStr überprüfen, ob % auch vorhanden ist. Ansonsten lässt du die vorhärigen Rechenschritte ausrechnen bevor du die Prozentrechnung beginnst.

Source gibt es jetzt nicht, da dies in den meisten fällen unweigerlich zum Scriptkiddie Syndrom führt ;)