Jump to content

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hallo,

ich benötige mal die Hilfe der Spezialisten.

Folgende Situation:
verschiedene Objekte sollen mit einem einheitlichen Ereignis auf Listen zugreifen. Da mehrere Objekte diese Listen verwenden, sollten diese nicht redundant bei allen betroffenen Objekten hinterlegt werden. Daher habe ich sie als "globale" Variablen direkt unter "Ereignisse" in der EV-Steuerung abgelegt.
In den Objekten steht dann eine Variable, die auf die jeweilige Liste verweist.

Da es so auf Anhieb nicht funktionierte, wie ich es mir dachte, bin ich auf ein simples Test-Szenario umgestiegen.

Das Objekt ist jetzt ein Schalter und ein Textfeld. varialble Liste ansprechen.mbp

Wird der Schalter betätigt, soll aus der Liste, deren Name in seiner Variablen hinterlegt ist, ein bestimmter Texteintrag aus der Liste angezeigt werden.

"globale" Textliste:
Variablen.thumb.jpg.c294eddf250de12acc3f1ad1774705df.jpg

Listenverweis im Schalter:
VariabledesObjekts.thumb.jpg.fbba9c18ee71c8dc2b013b64a942b024.jpg

Theoretisch müßte ich auf den ensprechenden Eintrag (z. B. den ersten) in der Textliste mittels grafischer EV wie folgt zugreifen können:
Ereignis.thumb.jpg.96618eb5c28fbd52ccf84ac864f117f9.jpg

In einem ähnlichen Kostrukt hatte dieser Mechanismus unter V7 einwandfrei funktioniert.

Wie komme ich hier weiter?

Gruß

Andreas

varialble Liste ansprechen.mbp

Bearbeitet von AndreasWB
Geschrieben (bearbeitet)
vor 57 Minuten schrieb AndreasWB:

Wie komme ich hier weiter?

Problem erkannt: Du übergibst nur den Namen der Variablen.
In deiner EV steht nicht, dass mit diesem Namen eine Modulvariable angesprochen werden soll. 

Ich suche nach der korrekten Schreibweise ... Moooment

 

Bearbeitet von Goetz
Geschrieben

Hallo Andreas, 
diese Art der Zuordnung (Name einer Modulvariablen aus einem Objekt auslesen) gelingt mir auf Anhieb nur in Lua:

local Name = $("Schalter (groß)").variables["meineListe"]
$("Text1").text = $("Ereignisse").variables[Name][1]

Viele Grüße
Götz

Geschrieben (bearbeitet)

Hallo @Goetz,

danke.

Da gibt es dann Ereignis/Modul.
Ereignis-Modulansprechen.jpg.24d5f56eff9194f3ad07e43f5f2caffe.jpg

Das hatte ich nicht gefunden.
Ich hatte vermißt "Ereignisse. " schreiben zu können. Soviel war mir schon klar.

Denn so versuchte ich ja, auf einen Text, der in der Variablen stand, eine Listen-Methode anzuwenden. Ich habe allerdings die Fehlermeldung in der Ereignisprotokollierung vermißt (datatype mismatch).

Wäre es nicht eine gute Idee, in den Variablen von Objekten auf solche "globalen" Modul-Variablen verweisen zu können? (zus. Datentyp "Variable")?
Eine Idee für V9.1 ? ;)

Gruß

Andreas

Bearbeitet von AndreasWB
typos
Geschrieben
vor 34 Minuten schrieb AndreasWB:

Da gibt es dann Ereignis/Modul.

Wenn du eine Variable dynamisch angeben, also ihre Adresse aus mehreren Teilen zusammensetzen musst, benötigst du die erweiterte Variable.
Der erste Teil ist dann der Ort und der zweite der Name.
Jede dieser zwei Angaben kannst du bei Bedarf erneut mit einer erweiterten Variable aufsplitten.

Du benötigst ein Element aus einer Liste.
Dafür gibst du ebenfalls (wie bei einer erweiterten Variable) zwei Informationen an: Die Liste und den Index.
Die Liste selbst möchtest du dynamisch angeben. Deshalb splittest du dieses Feld mit der erweiterten Variable in Ort und Name auf.
Den Namen möchtest du dynamisch aus einem anderen Objekt entnehmen. Deshalb musst du den noch ein weiteres Mal über die erweiterte Variable angeben.

In Lua schreiben wir dasselbe, ohne groß darüber nachzudenken welche Bausteine wir da zusammenfügen.
Deshalb bevorzugen die meisten User auch Lua, wenn sie solche komplexen Strukturen anlegen.
Ich brauchte ja auch einen etwas längeren Anlauf, bis ich das in der grafischen EV zusammengesetzt hatte.

Viele Grüße
Götz

Geschrieben

Hallo @Goetz,

die Dinge, die Du da beschreibst, waren ja soweit bekannt.

Wo es fehlte, war die richtige Zusammenstellung, um auf eine "globale" Modul-Variable mit der grafischen EV zugreifen zu können.
Aber das hat sich ja jetzt geklärt.

Gruß

Andreas

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