LabVIEWForum.de
case Name ändern - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: case Name ändern (/Thread-case-Name-aendern)



case Name ändern - abi - 13.03.2006 11:42

Hallo
ich weiss des klingt total bescheuert aber bei mir klappt des einfach nicht.

Ich habe eine Case structur und möchte dort eine Case dazu machen.

Aber wenn ich das machen verschwinden alle meine Anderen Case Structuren Namen und ich hab nur noch Zahlen und nicht mehr meinen String.

Oder ich bekomme einfach nur ne False Structur dazu, hab aber schon eine False Structur diese ist allerdings als Default definiert.

Die neue ist dann einfach nur False.

Bin für jede Anregung dankbar.
Danke
abi


case Name ändern - eg - 13.03.2006 14:09

Dein Fragezeichen muss rosafarbig sein. Dazu musst du einfach einen String an Fragezeichen anschliessen. Dann kannst du deinen Cases Stringnamen geben.
Bei dir ist das Fragezeichen bestimmt grün?! Deshalb kannst du nur True oder False-Cases machen.

Gruss, Eugen


case Name ändern - abi - 13.03.2006 15:20

Hallo Eugen
danke für die schnelle Antwort.

Mein Fragezeichen ist Blau. Weil ich dort ein Enumkonstante als Paramerter genommen hab.

Hab jetzt nochmal probiert, wenn ich in meiner Enum Konstante einen neuen Wert eintrage. Verschwinden alle alte Namen meiner Case Structur und es stehen nur noch Zahlen da.

Danke schon mal.

abi


case Name ändern - ChrisG - 14.03.2006 10:41

Hi abi,

wenn du eine Konstante an die Case-Struktur anschließt kannst du nur Werte vom gleichen Typ in die Case-Struktur einfügen:
Zb Wenn du ein Fehler-Cluster anschließt, kannst du nur Fehler/Kein Fehler auswählen oder bei Bool geht nur TRUE/FALSE.

Bei Enum-Konstanten werden Beschriftungen einem Int-Wert zugeordnet, d.h. dass du nur den entsprechenden Int-Wert in die Case-Struktur eintragen kannst. Zb wenn du in deiner Enum "Opt1->1" und "Opt2->2" hast, musst du einen Case "1" für "Opt1" und einen "2" für "Opt2" eintragen. Die Beschriftung der Enum-Konstante (der String der dir angezeigtwird) hat hier keine Bedeutung mehr.
Am besten setzt dann noch einen Kommentar in jeden Case, damit du nicht immer nachschlagen musst, was die Zahl zu bedeuten hat. Smile

Gruß,
Chris


case Name ändern - abi - 14.03.2006 12:55

Danke
jetzt weiss ich wenigstens wo mein Problem liegt.

Gibt es etwas, was mir nicht die Zahl sondern auch wirklich einen String nimmt.

Für meine Abfrage und meine Structur, dann würde ich das nehmen.

Hab nur die Enum genommen weil man dort so schön auswählen kann.

Schon mal danke.

abi


case Name ändern - ChrisG - 14.03.2006 15:48

Also die Case Struktur nimmt auch Strings, du kannst ein String Bedienfeld anschließen. Nur muss der User dann den String (Option) genau so eingeben wie du das vorgesehen hast (Abb. 1 erste Zeile). Rechschreibfehler und unterschiedliche Groß-/Kleinschreibung führen dann ins Leere oder den Standard-Case... Du könntst auch mehrer gleiche Cases einfügen zb "zeilen", "Zeilen", "Z" oder "Ze" für die Schreibfaulen:)Aber das verwirrt nur noch mehr... Hatte das mal gemacht, aber ich hab dann die gleichen Cases auch wieder rausgeschmissen.

Ist also für dich angenehmer, da im Case steht was es für eine Option ist, aber für den User aufwendiger, da er den Namen der Option eintragen muss und Groß-/Kleinschreibung beachten muss.

Aber mir fällt da grad noch eine andere (exotische) Möglichkeit ein. Schau selbst (Abbildung mittlere Lösung). Man könnte das Array und das Array indizieren VI in ein SubVI stecken, um etwas aufzuräumen, aber ich schätze der (Wartungs)Aufwand ist zu groß.Smile

Ich bevorzuge die Lösung in der unteren Reihe, wird durch den Kommentar sehr viel klarer und da man sowieso oft noch einen Kommentar setzt, lohnt sich der Aufwand der vorherigen Lösungen nicht.

Gruß,
Chris

Abbildung 1:
[Bild: 8153-43.gif]


case Name ändern - cvi - 14.03.2006 16:34

Hallo!

Ich bevorzuge ein Enum, mit welchem auch das Case automatisch sämtliche Werte des Enums übernimmt. Dann hat man im Case aussagekräftige Namen und die Gefahr der Schreibfehler wird eliminiert, da die Cases automatisch die Werte des Enums übernehmen!

Einfach mit LV Neu>Benutzerdefiniertes Bedienelement,
Dann Typ-Def wählen. Dann Eine Enum auf dem Frontpannel platzieren. Dann Werte eingeben und speichern.

Nun im Mainprogramm die Enum ins Blockdiagramm einfügen und an ein Case anschliessen. Dann im Case (rechte Maustaste) die Funktion "Alle Werte hinzufügen" wählen und es werden automatisch alle Cases angelegt!

Viel Spasse
Gruss CVI


case Name ändern - ChrisG - 14.03.2006 18:13

Auch net schlecht, aber gehts nicht mit einem "Kombinationsfeld" aus den "String und Path"-Bedinelementen einfacher?

Hab ich auch eben erst gefunden Smile

So long,
Chris

Aber trotzdem wieder was dazu gelernt.


case Name ändern - cvi - 15.03.2006 07:06

Naja, mit dem Kombinationsfeld geht es schon auch, nur dann muss man alle Einträge im Case selbst machen.

Da können dann eben Schreibfehler auftreten....

Grüsse CVI


case Name ändern - abi - 15.03.2006 09:34

Big GrinBig GrinBig Grin
abi