Mehrere While Schleifen nebeneinander laufen lassen

  • Heyho :)
    Ich hab ne Frage unzwa ist es möglich mehrer While Schleifen nebeneinander zu betreiben?
    Oder muss man das ganze in eine While-Schleife einbauen?
    Hier mal ein Beispiel:

    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $ressi = 50
    Global $ressiadd = True
    Global $ressimenge = 50

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

    $mainwindow = GUICreate("Ressis", 70, 25, @DesktopWidth -75, 0, Default, 0x88)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    Global $label = GUICtrlCreateLabel($ressi, 12, 7)
    GUISetState(@SW_SHOW)

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

    While 1
    Sleep(5000)
    WEnd

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

    While $ressiadd = True Then
    Sleep(10000)
    $ressi = $ressi + $ressimenge
    GUICtrlSetData($label, $ressi)
    WEnd

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

    Func CLOSEClicked()
    Exit
    EndFunc

    [/autoit]

    Der Script funktioniert nicht, gibt es da eine andere möglichkeit?

    MfG
    Cryfall ;)

    P.S. Mir ist schon klar das dat nicht geht, weil der Script sich die ganze Zeit in der 1. While-Schleife befindet.
    Meine Frage ist wie man es macht, dass er nebenher in regelmäßigen Abständen einen Wert ändert, ohne durch Sleep den rest des Scripts aufzuhalten.

    3 Mal editiert, zuletzt von Cryfall (24. April 2009 um 16:31)

  • Was sagt dazu die Hilfe ???

    While...WEnd-Schleifen können verschachtelt werden.
    Der Ausdruck wird ausgewertet, bevor die Schleife durchlaufen wird, sodass die Schleife Null mal oder öfter durchlaufen wird.
    Um eine Endlosschleife zu erhalten, kann man eine Zahl ungleich Null als expression verwenden.

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • P.S. Mir ist schon klar das dat nicht geht, weil der Script sich die ganze Zeit in der 1. While-Schleife befindet.
    Meine Frage ist wie man es macht, dass er nebenher in regelmäßigen Abständen einen Wert ändert, ohne durch Sleep den rest des Scripts aufzuhalten.

    Siehe mein Edit^^...wenn deine Antwort trotz. meine frage beantwortet hab ich nen Brett vorm Kopf und erklär nochmal bitte was du meinst :D

  • Hallo CryFall,

    so würde es funktionieren:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>

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

    Opt("GUIOnEventMode", 1)

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

    Global $ressi = 50
    Global $ressiadd = True
    Global $ressimenge = 50
    Global $timerBegin, $timerDif

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

    $mainwindow = GUICreate("Ressis", 70, 25);, @DesktopWidth -75, 0, Default, 0x88)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
    Global $label = GUICtrlCreateLabel($ressi, 12, 7)

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

    GUISetState()
    $timerBegin=TimerInit()

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

    While 1
    Sleep(100)
    if TimerDiff($timerBegin)>=10000 And $ressiadd Then
    $ressi = $ressi + $ressimenge
    GUICtrlSetData($label, $ressi)
    $timerBegin=TimerInit()
    EndIf
    WEnd

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

    Func CLOSEClicked()
    Exit
    EndFunc

    [/autoit]

    aber schau dir trotzdem die Hilfe an

    mfg (Auto)Bert