Beispiel, folgende Werteliste:
Ich möchte nun im Script einen dieser Werte als Kriterium oder als Konstante benutzen. z.B. so:
Code: Alles auswählen
integer t = 4;
object o = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Testvariable");
integer x = PlayWhilePressed;
! oder
o.State(PlayWhilePressed);
! oder
if (t == PlayWhilePressed) { ... }
Momentan realisiere ich das damit, am Scriptanfang die ganzen enum-Werte der Liste als Variable anzulegen:
Code: Alles auswählen
object oFK_Mode = dom.GetObject(ID_SYSTEM_VARIABLES).Get("SV_Funkklingel_Tastenmode");
integer noop = 0;
integer normal = 1;
integer PlayWhilePressed = 2;
integer PlayWhilePresedLoop = 3;
integer PlayToEnd = 4;
integer RandomAndRow = 5;
integer RandomAndRowEnd = 6;
Das ist aber nicht sehr effektiv, insbesondere für die Softwarepflege. Zudem darf es dann bei mehreren Wertelisten keine Elementebezeichner doppelt geben, zumindest nicht, wenn sich der enum-Wert unterscheidet.
Kennt jemand doch noch einen Weg, wie man das eleganter lösen kann?
Ideal wäre eine Lösung, direkt die Elementebezeichner zu verwenden ohne sie erst im Script nochmal anlegen zu müssen und die sich dann automatisch an veränderte Wertelistendefinitionen anpassen.