LabVIEWForum.de - Objektname einer Enum Konstante ändern

LabVIEWForum.de

Normale Version: Objektname einer Enum Konstante ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Zusammen,

ich möchte den Namen eines Objekts meiner Enum Konstante verändern. Dies geht über die Eigenschaften ganz einfach, jedoch wird mir dann in der Case-Struktur für jeden Zustand nicht mehr der Name des Case, sondern nur noch die zugehörige Zahl angezeigt (siehe Anhang).

Wie kann ich den Namen eines Enum Objekts verändern, ohne dass das oben beschriebene Problem auftritt?

Danke und Grüße
Marcel
Hallo Marcel,

Zitat:Wie kann ich den Namen eines Enum Objekts verändern, ohne dass das oben beschriebene Problem auftritt?
Indem du das typdefinierte Enum wirklich überall verwendest!
Vorher: kein CoercionDot im Bild
Nachher: CoercionDot im Bild…
Du verwendest eine Konstante.
Wenn Du was änderst, ist die nicht mehr auf dem neuesten Stand.

Neue Konstante erzeugen und schon sieht man den Text wieder.

Gruß
Freddy
Hallo Freddy,

im Bild wird eine typdefinierte Konstante verwendet - hoffentlich hat der OP die Typdefinition eben dieser Konstante bearbeitet.
Anscheinend wird aber innerhalb der Statemachine nicht überall diese TypeDef verwendet, weshalb die Konstante im Bild am Schieberegister den CoercionDot erzeugt.
Deshalb der Vorschlag: innerhalb der Statemachine überall dieselbe TypeDef verwenden!
(29.01.2018 14:37 )GerdW schrieb: [ -> ]im Bild wird eine typdefinierte Konstante verwendet - hoffentlich hat der OP die Typdefinition eben dieser Konstante bearbeitet.
Laut Screenshot wurde die Typdefinition geändert.
(29.01.2018 14:37 )GerdW schrieb: [ -> ]Anscheinend wird aber innerhalb der Statemachine nicht überall diese TypeDef verwendet, weshalb die Konstante im Bild am Schieberegister den CoercionDot erzeugt.
Deshalb der Vorschlag: innerhalb der Statemachine überall dieselbe TypeDef verwenden!
Bin haargenau der gleichen Meinung. Nur das kann es sein!

Gruß, Jens
Hallo Zusammen,

danke zunächst für eure antworten, aber ich kann euch nicht wirklich folgen. Bahn

(29.01.2018 14:37 )GerdW schrieb: [ -> ]Anscheinend wird aber innerhalb der Statemachine nicht überall diese TypeDef verwendet, weshalb die Konstante im Bild am Schieberegister den CoercionDot erzeugt.

Wieso sollte nicht dieselbe Typdefinition verwendet werden? Ich habe eine Enum Konstante genommen und mit der Case-Struktur verbunden. Wie kann dieses Problem dabei entstehen?

Was ist dieser CoercionDot, was sagt der aus?

Vielleicht hilft ja mein Programm. Ich möchte lediglich den Namen des Case "Störung" in "Ausschalten" umbenennen.

Grüße
Marcel
Hallo Marcel,

Zitat:Ich möchte lediglich den Namen des Case "Störung" in "Ausschalten" umbenennen.
Das Umbenennen ist nicht das Problem.
Das Problem ist, dass du in deinem VI eine Instanz dieser Typdef verwendest, die auf "Störung" gestellt ist und LabVIEW nicht weiß, welches Item deiner TypeDef stattdessen verwendet werden soll:
[attachment=58707]
Hier einfach das gewünschte Item auswählen! (In LV2017 ein Rechtsklick und "Review and Update from Typedef"…)
(Das ganze insgesamt 3mal…)

Zitat:Was ist dieser CoercionDot, was sagt der aus?
Lesen wir doch einfach mal die LabVIEW-Hilfe, gleich am Anfang unter "LabVIEW concepts"
Rtmfx

Ansonsten:
- das VI ist extrem unaufgeräumt - da solltest du mal dran arbeiten…
- wozu TimeOut-Events, wenn kein TimeOut vorgegegen wird?
- Muss die NOTAUS-Abfrage unbedingt einen ganzen CPU-Core zum Glühen bringen? Da gehört eine Wartezeit hinein!
- für meinen Geschmack eindeutig zu viele lokale Variablen…

Lesson learned:
- Das Entfernen oder Umbenennen schon verwendeter Items führt zu Problemen und der Programmierer muss sein VI entsprechend korrigieren
- Das Hinzufügen von neuen Items zu einem Enum ist (so gut wie immer) problemlos möglich
Hallo GerdW,

danke für die Antwort, das mit der Enum-Konstante klappt nun einwandfrei!

Dies ist mein erstes richtiges VI. Danke für deine Hinweise und Tipps, ich werde versuchen diese umzusetzen. Shy

Grüße
Marcel
Referenz-URLs