siggi Posted November 16, 2020 Share Posted November 16, 2020 Hallo, wie kann ich ein Objekt auf der Anlage per Variable ansprechen? Ich habe auf der Anlage 3 Textfelder mit den Namen "txt-Gleis-1" bis "txt-Gleis-3". In Lua möchte ich per Schleife den Namen mit Gleisname = "txt-Gleis-"..i ( i = Schleifenindex) ansprechen. Die normale Ausgabe sieht ja so aus: 1 local ZugName = "RE 1111“ 2 local AusgabeText = ZugName 3 $("txt-Gleis-1").text = AusgabeText Nun dachte ich, den Objektbezeichner "txt-Gleis-1" in Zeile 3 einfach durch eine Variable zu ersetzen 1 for i 1,3 do 2 local ZugName = "RE 1111“ 3 local AusgabeText = ZugName 4 local GleisName = "txt-Gleis-" .. i 5 (GleisName).text = AusgabeText 6 end Falsch gedacht: Die Ausgabe erfolgt nicht. Ich habe in den Lua Beschreibungen leider nichts passendes gefunden. Entwerder liegt mein Fehler in Zeile 4 oder an der Syntax in Zeile 5 LG Siggi Link to comment Share on other sites More sharing options...
Goetz Posted November 16, 2020 Share Posted November 16, 2020 Bitte, Siggi - pack deine Code Beispiele in den dafür vorgesehenen Kasten. Du siehst doch bei anderen, wie viel lesbarer das ist? Der Knopf dafür ist dieser hier: <> Link to comment Share on other sites More sharing options...
Neo Posted November 16, 2020 Share Posted November 16, 2020 Hallo Siggi, wenn du Objekte im Studio per Name ansprechen willst, musst du dafür die Funktion getEntityByName verwenden: layout:getEntityByName(Gleisname).text = Ausgabetext Viele Grüße, Neo Link to comment Share on other sites More sharing options...
siggi Posted November 16, 2020 Author Share Posted November 16, 2020 vor 1 Minute schrieb Goetz: Bitte, Siggi - pack deine Code Beispiele in den dafür vorgesehenen Kasten. Du siehst doch bei anderen, wie viel lesbarer das ist? Der Knopf dafür ist dieser hier: <> Danke für den Hinweis Goetz, werde ich dran denken. Ich musste den Scriptschnippsel von Hand schreiben, da mein MBS im Moment ständig abstürzt. Stefan Werner ist schon dran. Gruß Siggi Link to comment Share on other sites More sharing options...
siggi Posted November 16, 2020 Author Share Posted November 16, 2020 vor 5 Minuten schrieb Neo: layout:getEntityByName(Gleisname).text = Ausgabetext Danke Neo, sobald mein MBS wieder stabil läuft werde ich es probieren, im Moment gehen alle durchgeführten Änderungen verloren, da ich nicht speichern kann. Gruß Siggi Link to comment Share on other sites More sharing options...
Goetz Posted November 16, 2020 Share Posted November 16, 2020 (edited) vor 23 Minuten schrieb siggi: Ich musste den Scriptschnippsel von Hand schreiben Das macht keinen Unterschied. Du kannst trotzdem den <> Knopf dafür verwenden und den Helfern damit entgegenkommen. Ich meine damit den <> Knopf hier in der Kopfzeile des Eingabefeldes. Nicht den in der EV. Ein Screenshot der EV ist nicht hilfreich, weil dann niemand deinen Code kopieren und eventuell abändern könnte, um dir eine Lösung zu präsentieren. Mit dem <> aus der Kopfzeile sähe dein Beispiel so aus: local ZugName = "RE 1111“ local AusgabeText = ZugName $("txt-Gleis-1").text = AusgabeText und for i 1,3 do local ZugName = "RE 1111“ local AusgabeText = ZugName local GleisName = "txt-Gleis-" .. i (GleisName).text = AusgabeText end Und mit Neos Vorschlag dann so: for i 1,3 do local ZugName = "RE 1111“ local AusgabeText = ZugName local Textfeld = layout:getEntityByName("txt-Gleis-" .. i) Textfeld.text = AusgabeText end Edited November 16, 2020 by Goetz formatierte Code Beispiele eingefügt Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now