Jump to content
View in the app

A better way to browse. Learn more.

3D-Modellbahn Studio

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

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

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: <>

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

  • Author
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

  • Author
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

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 by Goetz
formatierte Code Beispiele eingefügt

Create an account or sign in to comment

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.