![]() |
Dynamisch Bedienelemente hinzufügen???? - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Dynamisch Bedienelemente hinzufügen???? (/Thread-Dynamisch-Bedienelemente-hinzufuegen) Seiten: 1 2 |
Dynamisch Bedienelemente hinzufügen???? - calimero - 19.10.2005 16:01 Hi, ist es in LabVIEW möglich Dynamisch Bedienelemente, sprich Druckschalter, LED usw. zur Laufzeit hinzuzufügen? Kleines Beispiel ich habe ein 19 Zoll Rack in dem mehrere Verstärker stecken, es können mal einer oder acht sein. Diese wollte ich mit einem Umschatbedinelement darstellen mit dem der Anwender die Möglichkeit hat z.B. den Verstärker auf Bucht eins und 4 einzuschalten. Vielleicht kann mir ja hier jemand weiterhelfen. Gruss Calimero Dynamisch Bedienelemente hinzufügen???? - Danyo - 20.10.2005 07:48 Hallo calimero! Also du kannst z.B. Bedienelemente zu bestimmten Zeitpunkten einblenden und wieder ausblenden. Dies machst du, indem du für das Bedienelement im Blockdiagramm einen Eigenschaftsknoten für "Sichtbar" erstellst. (Rechte Maustaste -> Erstelle -> Eigenschaftsknoten -> Sichtbar) Diesen kannst du dann in eine Case-Anweisung betten, sodass wie im Bild bei True das Bedienelement zu sehen ist und bei False eben nicht (vorher noch Element über rechte Maustaste "in Schreiben ändern" !). Vielleicht hilft dir das weiter.. Danyo Dynamisch Bedienelemente hinzufügen???? - calimero - 20.10.2005 08:04 Danke Dir für die schnelle Antwort, Das mit dem Eigenschaftsknoten habe ich auch heraus gefunden ![]() Mein Problem besteht jedoch darin das ein Kunde nur ein Rack besitzt, das bedeutet dann er hat 16 Kanäle, jetzt gibt es aber auch Kunden die 5 Racks besitzten was dann bedeutet das er 80 Kanäle hat. Wenn ich jetzt die Lösung mit dem Eigenschaftsknoten angehe dann muss ich schon im Voraus ca. 200 oder mehr LEDs definieren. Jetzt kommt der erste Kunde mit seinen 16 Kanälen dann wären ja 184 LEDs unnötig, was wiederum heißt das das Vi unnötig gross wird. gruss calimero Dynamisch Bedienelemente hinzufügen???? - Achimedes - 21.10.2005 07:21 Hallo, du könntest ein Cluster erzeugen mit allen elementen drin für ein Rack oder eben Zwei Cluster eins mit allen Bedienelemente und eins mit allen Anzeigeelemente für ein Rack. dann schmeist du jedes in ein Array. Jetzt kannst du dynamich jedes Array vergrößern oder verkleinern und somit immer soviele anzeigen wie du brauchst. wie wäre das? Grüße Achim Dynamisch Bedienelemente hinzufügen???? - calimero - 21.10.2005 09:09 Achimedes schrieb:Hallo, das hört sich ja schon mal interresant an, könntest du mal ein Beispiel oder ein Bild hochladen wäre Dir dankbar. Wenn du ein Beispiel hochlädst dann bitte in Version 7.0 Gruss calimero Dynamisch Bedienelemente hinzufügen???? - calimero - 21.10.2005 15:05 Hi, so wie im Anhang sollte das Vi aussehen, es tut zwar schon aber vielleicht geht das auch noch einfacher würde mich über ein Feedback freuen. Es sollte auch noch möglich sein das man einzelne Kanäle in den Racks grau hinter legen kann, das werde ich nächste Woche in angriff nehmen. Gruss Calimero !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! Dies erstellte Vi von mir ist nicht das gelbe vom Ei ;o) schaut mal Weiter unten da habe ich eine überarbeitete Version hochgeladen. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!! Dynamisch Bedienelemente hinzufügen???? - thomas.sandrisser - 21.10.2005 15:57 wennst meine ehrliche meinung dazu lesen willst -> schlecht programmiert! unuebersichtlich, chaotisch, und und und! wennst das programm noch erweitern willst, dann ist das fast ein ding der unmoeglichkeit :-) wennst schon sowas kompliziertes machen willst, dann fasse alle referenzen der elemente die du ausblenden willst in ein array zusammen und fuehre dieses array mittels autoindizierung an eine for schleife und lass in der for schleife ein property node die jeweiligen elemente ausblenden! Dynamisch Bedienelemente hinzufügen???? - calimero - 22.10.2005 07:54 freedive schrieb:wennst meine ehrliche meinung dazu lesen willst -> schlecht programmiert! unuebersichtlich, chaotisch, und und und! Dank dir für deine ehrliche Meinung, ich komme auch aus der Java, C++ usw. Welt und bin jetzt seit 3 Wochen im Kontakt mit LabVIEW ;o) ist schon was ganz anderes. Leider sollte die GUI so kompliziert aussehen, das mit den Arrays hatte ich auch vor nur nicht über eine For-Schleife ;o). Das mit dem Zusammenfassen der Referenzen hört sich ja supper an jedoch gibt es da ein kleinen Haken, ich weiß nicht im Voraus welche ausgeblendet werden sollten, erst wenn ich die Daten aus dem Binary-File gelesen habe weiß ich auch konkret welche Bedienelemente ausgeblendet werden sollten und ich glaube nicht das das in LabVIEW geht das ich zur Laufzeit sagen kann das ich jetzt die Referenz auf Bedienelement 5 z.B. in das Array legen sollte. Das ganze Problem wäre ziemlich schnell erledigt wenn ich nach dem einlesen des Binary-Files zur Laufzeit die Bedienelemente erstellen könnte, aber das kann ja LabVIEW nicht wie es scheint. Ist es in LabVIEW den auch möglich anhand eines UML Diagramms sein Programm zusammen zu klicken? Das finde ich das Schöne an anderen Sprachen, da machst dein UML Diagramm dann heißt es nur noch Klassen und Schnittstellen zu Programmieren und das Programm läuft ;o). Wenn das gehen sollte könnte man dann sagen das die Vi's die Klassen darstellen und was ist mit Designe Patterns? Kann man in LabVIEW auch alle benutzen? Gruss Calimero Dynamisch Bedienelemente hinzufügen???? - thomas.sandrisser - 22.10.2005 09:09 Das geht implizit schon! Du hast alle Bedienelemente platziert und weißt durch das Binary file welche Elemente du ausblenden musst/willst. Du fuegst also alle Referenzen in ein Array und erstellst dir aus dem Binary file ebenfalls ein Array, welches die Daten enthaelt, ob ein Element angezeigt werden soll oder nicht! Mit diesen beiden Arrays, die vorzugsweise die gleiche Laenge aufweisen :-), gehst an eine for-schleife und laesst Sie case gesteuert ablaufen! Den Abstand zwischen den Elementen im Cluster kannst dir entweder ueber ein Schieberegister generieren und an die naechste Iteration uebergeben oder du ueberlegst dir mit dem Iterationswert der Schleife eine Reihenentwicklung... Das mit dem dynamischen platzieren von Elementen in LabVIEW geht schon, durch eine Luecke in LabVIEW, jedoch ist das absolut nicht ratsam, denn 1. funzt das ganze NICHT mehr sobald du keine Entwicklungsumgebung hast (executable) und 2. kommen ab und zu schon sehr komische Dinge raus, wennst die Elemente versuchst zu platzieren :-) Dynamisch Bedienelemente hinzufügen???? - Achimedes - 22.10.2005 17:42 Schau dir das mal an. |