Unterschied | und $ in DDF Procedures

We proudly present: The release of DMXControl 3.3.3!


On September 29, 2026, we held our release show for DMXControl 3.3.3. During our usual “hour-long” session, we showed you all the new features in this version and what it now has to offer.
Read all about it in the corresponding news article: We proudly present: The release of DMXControl 3.3.3!


  • Hallo allerseits,

    schon wieder hab ich hier mal ne frage zu den Procedures: Was ist der Unterschied zwischen dem "|" Operator und dem "$" Operator, wenn er zwischen zwei IF-Bedungungen steht? Fungiert beim ersten Operator das 2.IF dann als ELSEIF oder wie hab ich das zu verstehen, weil eigentlich ist der Befehl doch danach zu beenden, oder? Das ist hoffentlich vorerst mal die letzte meiner größeren Fragen zum Thema DDFs mit Procedures :D

    MfG McMaxxter

    Beispiel:

    Code
    !if|{channel_1}|eq|5| !set_control|color_color|-1$|!if....

    ODER

    Code
    !if|{channel_1}|eq|5|
     !set_control|color_color|-1$
    $
    !if....

    Was wären Veranstaltungen nur ohne Technik... 8)

  • Hallo Uwe,
    Euer Handbuch ist einwandfrei, aber die Erklärung des "|" Operators macht in diesem Fall m.M.n. keinen Sinn. Da er ja eigentlich für die Separierung der einzelnen Bestandteile zuständig ist, ist er in meinem ersten Beispiel doch fehl am Platz, da der 2.Teil ja auch normalerweise aufgerufen wird.... Daher verstehe ich nicht, was der "|" Operator zwischen zwei IF-Bedingungen bringt. Wenn man ihn aber ganz aus der Procedure rauslässt, kommt eine Fehlermeldung, dass der Befehl zu kurz sei.... Was nutzt er also wirllich?

    Was wären Veranstaltungen nur ohne Technik... 8)

  • Der | ist tatsächlich der Seperator. In diesem Fall trennt er also noch ein weiteres Argument ab. Bei einem If-Befehl ist das der Else-Teil.
    Übersetzt heißen deine beiden Beispiele also:

    Code
    if (channel_1 == 5) { !set_control|color_color|-1$} else if (...) {

    ODER

    Code
    if(channel_1 == 5) {
     !set_control|color_color|-1$
    }
    if (...) {

    Stefan

  • Hallo Stefan, DANKE für deine Antwort ;) Da es hier aber eh kein 'einfaches' else gibt ist elseif auch unnötig, oder? :D Von daher... Warum aber ist der Befehl zu kurz, wenn es in einer Procedure kein Else If gibt bzw. wenn nirgendwo außerhalb des Wirkungsbereichs eines IFs ein | Seperator vorhanden ist? Bild folgt

    Was wären Veranstaltungen nur ohne Technik... 8)

  • Außerdem ist da noch was anderes: Man kann Procedures ja auch als einzelne Befehle schreiben, aber dann erkennt er bei mir nicht alle Möglichkeiten!

    Beispiel:

    Code
    !if|({channel_6} < 120)| !set_control|gobo_gobo|-1$$!if|({channel_6} > 200)| !set_control|gobo_gobo|-2$$

    ODER

    Code
    !if|({channel_6} < 120)|
     !set_control|gobo_gobo|-1$
     |
     !if|({channel_6} > 200)|
      !set_control|gobo_gobo|-2$
     $
    $

    Warum erkennt er nur im unteren Beispiel beide Möglichkeiten an, nicht aber im oberen!?
    Verlässt er die Procedure bei der oberen Möglichkeit direkt, wenn er merkt, dass diese nicht erfüllt ist?

    MfG McMaxxter

    Was wären Veranstaltungen nur ohne Technik... 8)

  • Newly created posts will remain inaccessible for others until approved by a moderator. The last reply was more than 365 days ago, this thread is most likely obsolete. It is recommended to create a new thread instead.