Brauche Hilfe beim Coden

11/19/2010 18:18 Ambuscade#1
Hi
Ich fange gerade an mich mit AutoIt zu beschäftigen.( und Koda )
Ich bin dabei einen mini-Taschenrechner zu machen^^
Es kommen natürlich noch Optionen dazu;)
Ich hab jetzt 3 Fragen :
1) Wie kann ich den Code kürzen?
2) Was muss ich machen, um das so einzustellen, dass ich, wenn ich auf "Abbrechen" klicke ( beim 2. Fenster), zum ersten Fenster gelange, und sich das Programm nicht ganz schließt ?
3) Was muss ich machen, damit in der Input-Box nicht Input1 steht, sondern 0 ?
PHP Code:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Rechner"318123192147)
$MenuItem1 GUICtrlCreateMenu("Datei")
$MenuItem2 GUICtrlCreateMenuItem("Schließen"$MenuItem1)
$Input1 GUICtrlCreateInput("Input1"164012121)
$Button1 GUICtrlCreateButton("+"160167525)
$Button2 GUICtrlCreateButton("-"160407525)
$Button3 GUICtrlCreateButton("x"160647525)
$Button4 GUICtrlCreateButton(":"232167525)
$Button5 GUICtrlCreateButton("x²"232407525)
$Button6 GUICtrlCreateButton("Wurzel"232647525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case $GUI_EVENT_CLOSE
            
Exit
        Case 
$MenuItem2
            
Exit
        Case 
$Button1
            $ausgelesen1 
GUICtrlRead($Input1)
            
#include <ButtonConstants.au3>
            #include <EditConstants.au3>
            #include <GUIConstantsEx.au3>
            #include <WindowsConstants.au3>
            #Region ### START Koda GUI section ### Form=
            
$Form2 GUICreate("Geben Sie hier nun eine andere Zahl ein"19094391218)
            
$Input2 GUICtrlCreateInput("Input1"321612121)
            
$Abbrechen GUICtrlCreateButton("Abbrechen"96487525)
            
$Loesen GUICtrlCreateButton("Lösen"8487525)
            
GUISetState(@SW_SHOW)
            
#EndRegion ### END Koda GUI section ###

            
While 1
                $nMsg 
GUIGetMsg()
                Switch 
$nMsg
                    
Case $GUI_EVENT_CLOSE
                        
Exit
                    Case 
$Loesen
                        $ausgelesen2 
GUICtrlRead($Input2)
                        
MsgBox(0,"Addition",$ausgelesen1+$ausgelesen2)
                    Case 
$Abbrechen
                        
Exit    
                EndSwitch
            
WEnd

        
Case $Button2
            $ausgelesen1 
GUICtrlRead($Input1)
            
#include <ButtonConstants.au3>
            #include <EditConstants.au3>
            #include <GUIConstantsEx.au3>
            #include <WindowsConstants.au3>
            #Region ### START Koda GUI section ### Form=
            
$Form2 GUICreate("Geben Sie hier nun eine andere Zahl ein"19094391218)
            
$Input2 GUICtrlCreateInput("Input1"321612121)
            
$Abbrechen GUICtrlCreateButton("Abbrechen"96487525)
            
$Loesen GUICtrlCreateButton("Lösen"8487525)
            
GUISetState(@SW_SHOW)
            
#EndRegion ### END Koda GUI section ###

            
While 1
                $nMsg 
GUIGetMsg()
                Switch 
$nMsg
                    
Case $GUI_EVENT_CLOSE
                        
Exit
                    Case 
$Loesen
                        $ausgelesen2 
GUICtrlRead($Input2)
                        
MsgBox(0,"Subtraktion",$ausgelesen1-$ausgelesen2)
                    Case 
$Abbrechen
                        
Exit    
                EndSwitch
            
WEnd
            
        
Case $Button3
            $ausgelesen1 
GUICtrlRead($Input1)
            
#include <ButtonConstants.au3>
            #include <EditConstants.au3>
            #include <GUIConstantsEx.au3>
            #include <WindowsConstants.au3>
            #Region ### START Koda GUI section ### Form=
            
$Form2 GUICreate("Geben Sie hier nun eine andere Zahl ein"19094391218)
            
$Input2 GUICtrlCreateInput("Input1"321612121)
            
$Abbrechen GUICtrlCreateButton("Abbrechen"96487525)
            
$Loesen GUICtrlCreateButton("Lösen"8487525)
            
GUISetState(@SW_SHOW)
            
#EndRegion ### END Koda GUI section ###

            
While 1
                $nMsg 
GUIGetMsg()
                Switch 
$nMsg
                    
Case $GUI_EVENT_CLOSE
                        
Exit
                    Case 
$Loesen
                        $ausgelesen2 
GUICtrlRead($Input2)
                        
MsgBox(0,"Multiplikation",$ausgelesen1*$ausgelesen2)
                    Case 
$Abbrechen
                        
Exit    
                EndSwitch
            
WEnd
        
Case $Button4
            $ausgelesen1 
GUICtrlRead($Input1)
            
#include <ButtonConstants.au3>
            #include <EditConstants.au3>
            #include <GUIConstantsEx.au3>
            #include <WindowsConstants.au3>
            #Region ### START Koda GUI section ### Form=
            
$Form2 GUICreate("Geben Sie hier nun eine andere Zahl ein"19094391218)
            
$Input2 GUICtrlCreateInput("Input1"321612121)
            
$Abbrechen GUICtrlCreateButton("Abbrechen"96487525)
            
$Loesen GUICtrlCreateButton("Lösen"8487525)
            
GUISetState(@SW_SHOW)
            
#EndRegion ### END Koda GUI section ###

            
While 1
                $nMsg 
GUIGetMsg()
                Switch 
$nMsg
                    
Case $GUI_EVENT_CLOSE
                        
Exit
                    Case 
$Loesen
                        $ausgelesen2 
GUICtrlRead($Input2)
                        
MsgBox(0,"Division",$ausgelesen1/$ausgelesen2)
                    Case 
$Abbrechen
                        
Exit        
                EndSwitch
            
WEnd         
        
Case $Button5
            $ausgelesen1 
GUICtrlRead($Input1)
            
MsgBox(0,"Quadrat",$ausgelesen1*$ausgelesen1)
        Case 
$Button6
            $ausgelesen1 
GUICtrlRead($Input1)
            
MsgBox(0,"Wurzel",$ausgelesen1^(0.5))         
    EndSwitch
WEnd 

Danke für Antworten :)
11/19/2010 19:16 omer36#2
zb so:

PHP Code:
#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Rechner"318123192147)
$MenuItem1 GUICtrlCreateMenu("Datei")
$MenuItem2 GUICtrlCreateMenuItem("Schließen"$MenuItem1)
$Input1 GUICtrlCreateInput("0"164012121)
$Button1 GUICtrlCreateButton("+"160167525)
$Button2 GUICtrlCreateButton("-"160407525)
$Button3 GUICtrlCreateButton("*"160647525)
$Button4 GUICtrlCreateButton("/"232167525)
$Button5 GUICtrlCreateButton("x²"232407525)
$Button6 GUICtrlCreateButton("Wurzel"232647525)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

#Region ### START Koda GUI section ### Form=
$Form2 GUICreate("Geben Sie hier nun eine andere Zahl ein"19094391218)
$Input2 GUICtrlCreateInput("0"321612121)
$Abbrechen GUICtrlCreateButton("Abbrechen"96487525)
$Loesen GUICtrlCreateButton("Lösen"8487525)
GUISetState(@SW_HIDE)
#EndRegion ### END Koda GUI section ###


While 1
$ausgelesen1 
GUICtrlRead($Input1)
$ausgelesen2 GUICtrlRead($Input2)
    
$msg GUIGetMsg(1)
    Switch 
$msg[1]
        Case 
$Form1
            
Switch $msg[0]
                Case -
3
                    
Exit
                Case 
$Button1
                    GUISetState
(@SW_SHOW$Form2)
                    
WinSetTitle($Form2"""+")
                Case 
$Button2
                    GUISetState
(@SW_SHOW$Form2)
                    
WinSetTitle($Form2"""-")
                Case 
$Button3
                    GUISetState
(@SW_SHOW$Form2)
                    
WinSetTitle($Form2"""*")
                Case 
$Button4
                    GUISetState
(@SW_SHOW$Form2)
                    
WinSetTitle($Form2"""/")
                Case 
$Button5
                    MsgBox
(0"Quadrat"$ausgelesen1 $ausgelesen1)
                Case 
$Button6
                    MsgBox
(0"Wurzel"$ausgelesen1 ^ (0.5))
            EndSwitch
        Case 
$Form2
            
Switch $msg[0]
                Case -
3
                    GUISetState
(@SW_HIDE$Form2)
                    
GUISetState(@SW_SHOW$Form1)
                Case 
$Abbrechen
                    GUISetState
(@SW_HIDE$Form2)
                    
GUISetState(@SW_SHOW$Form1)
                Case 
$Loesen
                    $zusammenfassen 
$ausgelesen1&WinGetTitle($Form2)&$ausgelesen2
                    $loesung 
Execute($zusammenfassen)
                    
MsgBox("","",$loesung)
            EndSwitch
    EndSwitch
If 
$msg[0] = $MenuItem2 Then Exit
WEnd 
11/19/2010 19:17 amnesi#3

So müsste es gehen :D
11/19/2010 19:20 omer36#4
und wiedereinmal war ich ein tick schneller als du ;D
11/19/2010 19:26 Ambuscade#5
Danke euch beiden :)
Aber hab noch ne Frage an omer36 : was ist der Unterschied zwischen :
Switch $nMsg und
Switch $msg[1] ?
11/19/2010 20:02 amnesi#6
die zweite variable ist eine array
11/19/2010 22:21 Ambuscade#7
Tut mir leid, ich fange grad erst an zu "programmieren".
Was und wofür ist eine Array ?
11/19/2010 23:17 amnesi#8
[Only registered and activated users can see links. Click Here To Register...]
vllt. kann dir das weiterhelfen ;D
11/19/2010 23:42 eXcalibur93#9
kurz gesagt ist ein Array eine Variable mit mehreren Werten, z.b: bei einer Koordinate hast du x und y Wert, die kannst du beide in ein Array speichern. Viele Funktionen von AutoIt geben als wert ein Array zurück, weil es "mehrere Antworten/Möglichkeiten" gibt was als Ergebnis bei diesen Funktionen herauskommt.
Wenn du dich weiter mit AutoIt auseinandersetzen willst, solltest du das tut machen, das amnesi gepostet hat. :D
11/20/2010 14:05 Ambuscade#10
ok werd ich machen ;)
danke :)
11/20/2010 15:40 omer36#11
und durch array´s kannste dir auch ne menge schreib arbeit sparen, wenn du dich damit auskennst... (ich kann es selber noch nicht so wirklich..)

hier ein kleines bsp ohne array´s :

PHP Code:
$Form1 GUICreate("Form1"189600192124)
$Button1 GUICtrlCreateButton("Button1"161615349)
$Button2 GUICtrlCreateButton("Button2"167215349)
$Button3 GUICtrlCreateButton("Button3"1612815349)
$Button4 GUICtrlCreateButton("Button4"1618415349)
$Button5 GUICtrlCreateButton("Button5"1624015349)
$Button6 GUICtrlCreateButton("Button6"1629615349)
$Button7 GUICtrlCreateButton("Button7"1635215349)
$Button8 GUICtrlCreateButton("Button8"1640815349)
$Button9 GUICtrlCreateButton("Button9"1646415349)
$Button10 GUICtrlCreateButton("Button10"1652015349)
GUISetState(@SW_SHOW)

While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case -3
            
Exit
        Case 
$Button1
            MsgBox
(""""'Button1 wurde gedrückt')
        Case 
$Button2
            MsgBox
(""""'Button2 wurde gedrückt')
        Case 
$Button3
            MsgBox
(""""'Button3 wurde gedrückt')
        Case 
$Button4
            MsgBox
(""""'Button4 wurde gedrückt')
        Case 
$Button5
            MsgBox
(""""'Button5 wurde gedrückt')
        Case 
$Button6
            MsgBox
(""""'Button6 wurde gedrückt')
        Case 
$Button7
            MsgBox
(""""'Button7 wurde gedrückt')
        Case 
$Button8
            MsgBox
(""""'Button8 wurde gedrückt')
        Case 
$Button9
            MsgBox
(""""'Button9 wurde gedrückt')
        Case 
$Button10
            MsgBox
(""""'Button10 wurde gedrückt')
    EndSwitch
WEnd 

hier genau das selbe mit array´s:

PHP Code:
Dim $button[10]

$Form1 GUICreate("Form1"189600192124)
For 
$i 0 To 9
    $button
[$i] = GUICtrlCreateButton('Button' $i1616 56 $i15349)
Next
GUISetState
(@SW_SHOW)

While 
1
    $nMsg 
GUIGetMsg()
    Switch 
$nMsg
        
Case -3
            
Exit
    EndSwitch
    For 
$i 0 To 9
        
If $nMsg $button[$iThen
            MsgBox
(""""'Button ' $i ' wurde gedrückt')
        EndIf
    
Next
WEnd 
wie du siehst, nicht mal halb so viel geschrieben...

aber wiegesagt, ich kanns mit array selber noch nicht so gut, vllt gehts sogar noch einfacher.. ^^