Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
12.02.2007, 16:39 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2007 16:40 von Mr.T.)
Ich habe da mal wieder eine absolute "LV-Allgemein" Frage:
Anbei ist ein VI, welches so eine Art Bildumschaltung darstellt, wie man es in Produktionsstraßen an Touchpanels gewohnt ist. Nicht wundern, es ist nur die Bildumaschaltung ("Registerkartenaktivierung") umgesetzt, die zwischen Automatik und Manuell hin und herschaltet.
Es soll also bei Buttonbetätigung eine jeweils andere Registerkarte angesprungen werden (für SPS-ler und Bediener: anderes Bild).
Jetzt habe ich in dieser Variante ja so eine blöde Ereignisabfrage für jeden einzelnen Button.
Aber ich könnte ja ALLE Buttons ("Wertänderung") in ein Ereigniscase einfügen. Dort über "ctrlref" herausfinden, welcher Button es war, und dessen Name (über Knoten) herausfinden. Da die Namen der Buttons denen der Registerkarten entsprechen, könnte ich ja direkt statt mit Konstanten zu arbeiten über den jeweiligen Namen die zugehörige Registerkarte in den Vordergrund rücken.
Und da liegt mein Problem: Wie kann ich den "TEXT" des Bedienelementes dem Registerkartennamen zuordnen, um es zu aktivieren?
Oder geht das nicht - Praktisch wärs...!?
Mal sehen, ob Ihr da ne Idee habt!
Gruß
Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
12.02.2007, 16:54 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2007 16:59 von eg.)
Könntest du eine Version runterspeichern, dass ich es anschauen kann?
Gruss
Ich glaube ich weiss, wie du es machen könntest. Und zwar. Mach all deine Tasten in ein Cluster, dann mit ClusterTo Array nach Array umwandeln. Dann kannst du in deiner Eventabfrage, Cluster-Value Change abfragen. Mit search 1D-Array, kannst du rausfinden welcher Button geklickt wurde und die richtige Registerkartenseite anzeigen.
Oder andere Möglichkeit:
du kannst in ein Event auch mehrere Events packen. Dann kannst du über Controlref den Namen des Controls rausfinden und über Switch-Case die richtige Registerkarte anzeigen.
@ EG; Ja, genau so mache und meine ich das auch! Aber ich möchte nicht den TEXT des Buttons erst vergleichen müssen, sondern Direkt dem Register zuweisen, dass den selben Namen hat. Nur kann ich die Registerkarten leider nur mit Zahlen oder Konstanten steuern..blöde "caserei"...
Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
Während ich etwas zusammenbastelte, kamen von EG die Vorschläge, habe mir die jetzt noch nicht angesehen.
Ich weiß genau was Du meinst, damit habe ich mich auch schon herumgequält, es ging aber nur schlecht bzw. war zu umständlich.
Mein Vorschlag: Deine drei Tasten in ein Option-Menü hineinstecken, das passt dann perfekt, an Programmcode hat man nur noch einen einzigen Draht zum Verbinden von Aufzählungstype (Optionmenü) mit Aufzählungstype (Bilder).
Herstellen des Option Menüs:
1) Option-Menü (Klassisch) aufrufen. Klassisch deshalb, weil man das dann mit Farbe transparent unsichtbar machen kann, so daß kein Mensch mehr den Trick durchschaut
2) Deine Knöpfe in der richtigen Reihenfolge hineinziehen. Das was standardmäßig drin ist herauslöschen.
3) Evtl den Rahmen des Option Menüs anpassen und, wie oben erwähnt, unsichtbar machen.
Es funktioniert nur, wenn die Bezeichnungen der Knöpfe und der Tabs genau übereinstimmen - genau so wolltest Du es ja auch.
Eugen - Danke! Eine schöne Lösung, aber den Stringvergleich möchte ich mir schenken. Alles sooo aufwendig...
Lucki - boah! Echt super! Ich denke das ist es, was die Sache noch am simpelsten löst. Pke, das mit der richtigen Reihenfolge...aber sonst - da muss ich Dir mal ein Kompliment machen.
Wieso bin ich nicht darauf gekommen?
Aber: ich denke, ich trage diesen Wunsch mal in die LV-Wunschliste ein. Wieso auch nicht, vielleicht hört NI hier ja doch mit!
Danke an alle!
Mit einem freundlichen Wort und etwas Gewalt erreicht man viel mehr als nur mit einem freundlichen Wort. [...Marcus zu Lennier, B5]
12.02.2007, 22:16 (Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2007 22:19 von Lucki.)
' schrieb:Lucki - boah! Echt super! Ich denke das ist es, was die Sache noch am simpelsten löst. Pke, das mit der richtigen Reihenfolge...aber sonst - da muss ich Dir mal ein Kompliment machen.
Das mit der richtigen Reihenfolge habe ich nur geschrieben, um mir den Text zu sparen, den ich jetzt doch schreibe. Also: Man kann auf auf den Radio-Buttons (Auswahlmenü) mit der rechten Maustaste klicken, und da kommt im Kontextmenü genau das, was dann bei jedem Cluster erscheint: "Bedienelements in Cluster neu anordnen"
Radio-Buttons sind an sich eine sehr gute Sache, aber vermiest wird einem die Verwendung letztlich dadurch, daß diese kleinen runden Felder zum an-und abklicken designmäßig einfach furchtbar sind. Und- hier komme ich um etwas Eigenlob nicht herum, also bitte Nase zuhalten - durch freches drauflosprobieren habe ich entdeckt, daß man jedes andere boolsche Bedienelement hineinziehen kann und die ursprünglichen Elemente löschen kann. Und mehr noch: Wenn man die Struktur und den Rahmen transparent macht, dann sieht man den Radio-Butten-Rahmen überhaupt nicht mehr. Die einzelnen Knöpfe müssen auch nicht mehr räumlich nebeneinander liegen, obwohl das meist sinnvoll ist. Sie können sich z-B in einem riesengroßen transparenten Rahmen so groß wie die Frontplatte befinden, können damit frei über die Frontplatte verteilt werden, und haben dabei doch untereinander diesen funktionalen Zusammenhang der Radio-Buttons.
Lange Rede kurzer Sinn: Mit Radio-Buttons läßt sich viel mehr machen als es vordergründig den Anschein hat.
13.02.2007, 09:48 (Dieser Beitrag wurde zuletzt bearbeitet: 13.02.2007 09:50 von Mr.T.)
' schrieb:Das mit der richtigen Reihenfolge habe ich nur geschrieben, um mir den Text zu sparen, den ich jetzt doch schreibe.
Toll!
Haha - so hatte ich das aber garnicht gemeint...
Ich finde es nur schade, dass obwohl man eine eindeutige Information (über den Namen) hat, eben diese nicht verwenden kann...Wenn wir dies könnten, müssten wir eben nicht auf die Reichenfolge der Buttons achten - was einfach besser wäre.
So , jetzt isses doch klarer.
Hat jemand vielleicht eine Idee, das Ganze mit "VI-Server" zu erschlagen? Über einen Webcast konnte ich herausfinden, wie ich an die einzelnen Namen der Reiter heran komme: