Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)
Am ‎12‎.‎08‎.‎2019 um 18:29 schrieb metallix:

Ich wuerde es begruessen wenn unter Bedingungen auch das vorhandensein eines schlagwortes als option gewaehlt werden koennte.

Dank Neo habe ich dazu jetzt einen Vorschlag.
Mittels Lua kann man alle Elemente, die ein bestimmtes Schlagwort (engl: keyword) haben, als Tabelle bekommen.

Der Funktion dazu heißt: layout:getEntitiesByKeyword() und sie benötigt als Argument das Schlagwort.
Da das Wort ein String ist, muss es den Lua Regeln folgend in Anführungsstrichen stehen.
Die Funktion liefert eine Tabelle zurück.

In der angehängten Beispielanlage habe ich 12 Schalter abwechselnd mit dem Schlagwort "ungerade" und "gerade" versehen.
Mit den folgenden zwei Zeilen Lua gebe ich diesen beiden Gruppen die Namen GruppeA und GruppeB

GruppeA = layout:getEntitiesByKeyword("ungerade")
GruppeB = layout:getEntitiesByKeyword("gerade")

Wird der Kippschalter betätigt, dann wird ein kleines Skript aufgerufen.
Die Stellung 0 des Kippschalters dient dabei als Bedingung. Ist sie erfüllt, dann sieht das Skript so aus:

local an, aus = 1, 0

for k, v in ipairs(GruppeA) do
  v.state = an
end

for k, v in ipairs(GruppeB) do
  v.state = aus
end

in ipairs liefert für die for-Schleife nacheinander alle Elemente der Tabelle, die in den Klammern genannt wird.
Das Element steht in der Variablen v, der Index des Elements in k.
Ich verwende im Beispiel nur v. Den Index benötige ich nicht.

Ist die Bedingung "Kippschalter Stellung = 0" nicht erfüllt, dann wird ein nahezu identisches Skript ausgeführt. Nur die Zuweisung von "an" und "aus" ist vertauscht.

1406537412_AuswahlperSchlagwort.jpg.b161cc3b08231fe45efd6d16443a227a.jpg

 

Die Stellung des Kippschalters als Bedingung und die daraus resultierenden zwei nahezu identischen Skripte wären nicht nötig.
Das kann man noch einfacher gestalten. Ich dachte nur, dass die Zusammenhänge so vielleicht deutlicher werden.
Aus demselben Grund habe ich auch die Stellungen 0 und 1 sowie die Tabellen, welche layout:getEntitiesByKeyword() liefert, mit Namen versehen.

Viel Spaß beim Ausprobieren
Götz

Auswahl per Schlagwort 01.mbp

Bearbeitet von Goetz
Schreibfehler korrigiert

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto besitzen, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen.

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...