Jump to content
Sign in to follow this  
Goetz

Auswahl per Schlagwort

Recommended Posts

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

Edited by Goetz
Schreibfehler korrigiert

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×