AutoIt - Frage/Problem bei den Schleifen!!

04/04/2010 21:34 Visonar#1
Nabend,
ich hätte da mal eine kleine Frage zum unterbrechen von Endlosschleifen.
Und nein, damit meine ich nicht einfach den Befehl "Exitloop"!

Also, ich werde mal anhand eines kleinen Test-Scripts versuchen, meine Frage zu erklären:

PHP Code:
#include <GUIConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 GUICreate("Form1"283107193125)
$Button1 GUICtrlCreateButton("Start"3224100570)
GUICtrlSetFont(-1244000"MS Sans Serif")
$Button2 GUICtrlCreateButton("Exit"14424100570)
GUICtrlSetFont(-1244000"MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

        Case 
$Button1
        
Case $Button2
    
EndSwitch
WEnd 
Also, ich habe hier eine Form vor mir, mit einem Start -und einem Beenden-Button.
Wenn der Start-Button gedrückt wird soll etwas andauernd gemacht werden, z.b. mal "a" gesendet werden.

das würde ja wie folgt aussehen:

PHP Code:
while1
send
("{a}")
wend 
Beim Klick auf den Beenden-Button soll dies nun unterbrochen werden, das Script soll pausieren.

Wie muss ich jetzt while1/wend setzen und gehört dort dann ein exitloop hin?

z.b.

PHP Code:
case $button2
exitloop
sleep
(200)
wend 
Oder i-wie so xD


Hoffe, einer hat ne Lösung für mich parat.

Danke im Vorraus!


MFG
04/04/2010 23:02 .nAno#2
PHP Code:
$running True

while 1=1
     
While $running
     send
("{a}"
     If 
GUIGetMsg () = $Beenden Then $running =  False
     Wend 
Man könnte sich die innere While Schleife auch sparen und gegen ne If Abfrage ersetzen, solange die äußere Schleife ne Endlosschleife bleibt.
Vorteil dieser Schreibweise ist aber, dass du die äußere Schleife anpassen kanns wie du möchtest (was du sicher noch machen musst um nen schönes Prog. zu haben) und du Sparst dir eine Instanz an Überprüfung wodurch dein Programm beinahe unbeteutend schneller wird, aber man gönnt sich ja sonst nichts :rolleyes:
04/05/2010 00:35 Visonar#3
Quote:
Originally Posted by .nAno View Post
PHP Code:
$running True

while 1=1
     
While $running
     send
("{a}"
     If 
GUIGetMsg () = $Beenden Then $running =  False
     Wend 
Man könnte sich die innere While Schleife auch sparen und gegen ne If Abfrage ersetzen, solange die äußere Schleife ne Endlosschleife bleibt.
Vorteil dieser Schreibweise ist aber, dass du die äußere Schleife anpassen kanns wie du möchtest (was du sicher noch machen musst um nen schönes Prog. zu haben) und du Sparst dir eine Instanz an Überprüfung wodurch dein Programm beinahe unbeteutend schneller wird, aber man gönnt sich ja sonst nichts :rolleyes:
und wie baue ich das jetzt in die button ein?
04/05/2010 00:45 .nAno#4
PHP Code:
#include <GUIConstants.au3> 

#Region ### START Koda GUI section ### Form= 
$Form1 GUICreate("Form1"283107193125
$Start GUICtrlCreateButton("Start"3224100570
GUICtrlSetFont(-1244000"MS Sans Serif"
$Beenden GUICtrlCreateButton("Exit"14424100570
GUICtrlSetFont(-1244000"MS Sans Serif"
GUISetState(@SW_SHOW
#EndRegion ### END Koda GUI section ### 

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

Case 
$Start
$running 
True 

while 1=
     
While $running 
     send
("{a}")  
     If 
GUIGetMsg () = $Beenden Then $running =  False 
     Wend 
 
    
EndSwitch 
WEnd 
04/05/2010 00:51 Visonar#5
Quote:
Originally Posted by .nAno View Post
PHP Code:
#include <GUIConstants.au3> 

#Region ### START Koda GUI section ### Form= 
$Form1 GUICreate("Form1"283107193125
$Start GUICtrlCreateButton("Start"3224100570
GUICtrlSetFont(-1244000"MS Sans Serif"
$Beenden GUICtrlCreateButton("Exit"14424100570
GUICtrlSetFont(-1244000"MS Sans Serif"
GUISetState(@SW_SHOW
#EndRegion ### END Koda GUI section ### 

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

Case 
$Start
$running 
True 

while 1=
     
While $running 
     send
("{a}")  
     If 
GUIGetMsg () = $Beenden Then $running =  False 
     Wend 
 
    
EndSwitch 
WEnd 
dann kommt fehlermeldung:(
04/05/2010 01:05 .nAno#6
Du hättest ruhig erwähnen können was für eine Fehlermeldung ;)

Es fehlt nen WEnd Statement, wo genau werd ich dir nicht sagen, da ich den Code nicht geschrieben hab damit du ihn kopierst sondern kapierst :rolleyes:
04/05/2010 01:29 Visonar#7
Quote:
Originally Posted by .nAno View Post
Du hättest ruhig erwähnen können was für eine Fehlermeldung ;)

Es fehlt nen WEnd Statement, wo genau werd ich dir nicht sagen, da ich den Code nicht geschrieben hab damit du ihn kopierst sondern kapierst :rolleyes:
schönes wortspiel...ok dann mach ich mich mal auf "wend-suche"^^

€: danke klappt super, hast 2 thx:D