Functions abbrechen

  • hey,
    ich habe ein script das in einer while schleife wartet, bis ein button gedrückt wird, sobald das geschieht, werden mehrere function hintereinander ausgeführt und dannach gehts wieder in die while schleife.
    die einzelnen functions breche ich zurzeit mit "Return" ab, dann geht es direkt in die nächste function.

    gibt es auch einen befehl um alle function abzubrechen und direkt wieder in die whileschleife zurück zu kommen ?

    mfg

  • Arbeite doch mit einer Globalen Variable, die du in jeder Funktion prüfst.
    Wenn $irgendwas = 1 Mach weiter, wenn $Irgendwas = 0 Gehe wieder aus der Funktion

    LG

    LG

    Philip

  • Hi,

    häufen sich die abfragen vor den einzelene functions so langsam und es wird unübersichtlich


    Hierbei wäre sehr günstig dein Script sehen zu können :)

    Statt Globalen Varriablen würde ich allerdings vorschagen mit Returnwerten bzw. der SetError() oder SetExtended() Funktion zu arbeiten, über diese können Informationen weitergeben werden, du kannst dann auf @Error (Fehler/Abbruche), @Extended (erweiterte Rückgabe), oder dem normalen "Return Value" reagieren.

    mfg
    Zeitriss

  • das ganze sieht in etwa so aus :

    Code
    While 1 
    	Case $Button1
    		Function1()
    		Function2()
    		Function3()
    		Function4()
    		Function5()
    WEnd


    wenn ich jetzt allerdings bei Function2 einen error erzeuge, sodass die weiteren functions nichtmehr ausgeführt werden sollen, will ich diesen nicht bei Function3/4/5 einzeln abfragen und mit einem "Return" die functionen abbrechen, sondern ich möchte in Funcion2 mit einem "hauptbefehl" die kompletten functionen abbrechen und zurück in die whileschleife kommen.
    gibt es so einen befehl ?

  • Ich denke er möchte in seinem Fall keinen Exitloop, sondern die Möglichkeit an einem früheren Punkt wieder einzusteigen.

    Das ginge natürlich auch so wie es Kanashius gemacht hat, wenn man etwa noch eine Variable mit einem Flag für die aktuelle Position im Skript füllt..

    Viele Wege führen nach Rom. Ein Bsp. mit Return wäre folgendes:

    Es ist also möglich, direkt einen Funktionsaufruf per Return zu setzen..

    Du kannst natürlich alles in der While-Schleife machen. Die brauchst du aber nicht.
    Wenn du in jeder Funktion einen Fehlerwert setzt, kannst du auch mit Return danach entweder die nächste Funktion aufrufen, oder die gleiche noch einmal, oder die davor, oder die erste, oder je nach Error-Wert was auch immer..

    Grüße autoiter

  • Ganz einfach: Script einfügen, sonst geht das XY Problem hier noch ewig weiter.
    Übrigens: Andere Lösungen, um eine Funktion mit "auf einmal alle abbrechen" gibt es nicht, als oben genannte globale Variable.

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • Ich denke er möchte in seinem Fall keinen Exitloop, sondern die Möglichkeit an einem früheren Punkt wieder einzusteigen.

    Wer redet den von ExitLoop? ContiniueLoop scheint das gewünschte zu sein:

    aber da der TE sich so stark weigert ein komplett laufbares (Demo?)-Skript einzustellen, votiere ich hiermit dafür das Them zu schliessen!