Events eines Controls in anderem VI bearbeiten - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: Events eines Controls in anderem VI bearbeiten (/Thread-Events-eines-Controls-in-anderem-VI-bearbeiten) |
Events eines Controls in anderem VI bearbeiten - SteffenSI - 28.06.2009 14:29 Hallo, mein main.vi beinhaltet verschiedene controls. Deren user events wuerde ich gerne der uebersichtlichkeit halber fuer jedes control getrennt in einem anderem subVI bearbeiten. Das subVI kennt ja aber nun das entsprechende control nicht mehr, sodass die moeglichen events dort nicht angezeigt werden. Gibt es hierfuer eine einfache loesung (nicht mit register events) damit ich in meinem subvi die verschiedenen user events behandeln kann, als ob mein subVI das control beinhalten wuerde? Gruesse Steffen Events eines Controls in anderem VI bearbeiten - eg - 28.06.2009 14:39 Kannst du denn nicht die Event Struktur im Main machen, pro Control ein Event Case und dann im Case das entsprechende SubVI aufrufen? Wozu brauchst du den Control im SubVI? Falls du also doch etwas mit dem Control im SubVI machen willst, dann kannst du ans SubVI die Referenz zum Control übergeben. Aber lass doch die eigentliche Event Struktur im Main. Gruß,eg Events eines Controls in anderem VI bearbeiten - Lucki - 28.06.2009 19:14 ' schrieb:Hallo,Ja natürlich, dafür sind Referenzen da. Damit kannst Du vom SubVI aus auf Elemente im Haupt-VI genau so zugreifen, als ob Du alles im HauptVI machen würdest. So wirds gemacht: [attachment=19357] 1. Erzeugen der Referenzen im Haup-VI: (Bild links) Rechte Maustaste, erzeugen, Referenz 2 Erzeugen der Referenzanschlüsse auf dem FP das SubVI (Bild Mitte) Mit der linken Maustaste die in 1. erzeugten Referenzen auf das FP des SubVI schieben (es ensteht Kopie) 3. Erzeugen der Eigenschaftskoten im SubVI Rechte Maustaste, erstellen, Eigenschaft ...Klasse [attachment=19359] [attachment=19358] Anmerkung: Um alles möglichst einfach darzustellen, habe ich das Beispiel so gemacht, daß es an Dämlichkeit und Nichtsnutzigkeit nicht mehr zu überbieten ist.. Events eines Controls in anderem VI bearbeiten - SteffenSI - 30.06.2009 11:44 Bei deiner Lösung Lucki steht ja die Event-Structure nun weiterhin im HauptVI. Da mein HauptVI aber über ungefähr 15 Controls verfügt und jedes dieser Controls über 4 bis 10 Events würde ich gerne die EventStructure selbst in das SubVI bringen. Sodass quasi jedes Control sein eigenes SubVI hat mit einer Loop und einer Eventstructure darin, die die UserEvents für dieses Control abfängt (all diese SubVIs laufen dann später parallel). Mein Problem ist nun, dass das Control in dem SubVI ja unbekannt ist, ich also nciht aus den Events die dieses Control bereitstellt auswählen kann. Viele Grüße, Steffen Events eines Controls in anderem VI bearbeiten - IchSelbst - 30.06.2009 11:52 ' schrieb:Da mein HauptVI aber über ungefähr 15 Controls verfügt und jedes dieser Controls über 4 bis 10 Events würde ich gerne die EventStructure selbst in das SubVI bringen. Sodass quasi jedes Control sein eigenes SubVI hat mit einer Loop und einer Eventstructure darin, die die UserEvents für dieses Control abfängt (all diese SubVIs laufen dann später parallel).Mal so in Blaue gesprochen: Pro Control ein SubPanel und in dem SubPanel das SubVI ausführen. Das Control liegt dann auf dem FP des SubVIs. Mit einem SubVI, also quasi einem (Cluster-)Control, geht das auf jeden Fall gut. Events eines Controls in anderem VI bearbeiten - schrotti - 30.06.2009 12:14 Warum eigentlich nicht mit dynamischen Events? Könntest ja die Referenz des Controls dem SubVI übergeben und dort Regestrieren. Einfach ists auch? Events eines Controls in anderem VI bearbeiten - Lucki - 30.06.2009 12:45 ' schrieb:Bei deiner Lösung Lucki steht ja die Event-Structure nun weiterhin im HauptVI. Da mein HauptVI aber über ungefähr 15 Controls verfügt und jedes dieser Controls über 4 bis 10 Events Nun gut, dann hättest Du eben eine Evestruktur mit 100 Cases. Worin liegt denn der Vorteil von dem was Dir vorschwebt? Die 100 Cases mußt Du so und so einzeln erstellen, und wenn alles in einem Haupt-VI wäre, wird das VI dadurch optisch nicht größer, da es eben nur eine einzige Eventstruktur ist. Die Summe allern graphischen Codes bleibt letztlich konstant. Wenn aber der Code in einem einzigen Case übereiandergeschachtel ist, so ist das doch nicht unübersichtlicher als in Dutzenden Sub-VIs verstreut. Wahr ist aber vielleicht, daß Dein Projekt mit einer guten Idee deutlich einfacher sein könnte - nur diese Idee ist es wohl eher nicht. Events eines Controls in anderem VI bearbeiten - eg - 30.06.2009 15:26 @Lucki, bin komplett deiner Meinung! Events eines Controls in anderem VI bearbeiten - IchSelbst - 30.06.2009 15:47 ' schrieb:Worin liegt denn der Vorteil von dem was Dir vorschwebt?Bei mehreren SubVIs (in Subpanels), also pro SubVI ein einziger, spezifischer Datencluster, ist der "Wiederverwendbarkeitswert" höher. Bei einem SubVI mit vielen Datenclustern ist die Wiederverwendbarkeit eher begrenzt. Events eines Controls in anderem VI bearbeiten - Lucki - 30.06.2009 16:04 ' schrieb:Bei mehreren SubVIs (in Subpanels), also pro SubVI ein einziger, spezifischer Datencluster, ist der "Wiederverwendbarkeitswert" höher. Bei einem SubVI mit vielen Datenclustern ist die Wiederverwendbarkeit eher begrenzt.Hatte den modifiierten Vorschlag von Dir nicht mit im Radar, weil ich selbst mit Subpanels noch nichts gemacht habe und das nicht bewerten kann. Vielleicht hast Du recht. Bei den Vereinfachungen denke ich z.B daran, daß man mehrere .. viele ähnliche Ereignisse, (wenn sie z.B alle das gleiche SubVI aufrufen) in einem einzigen Ereignsiscase zusammenfasst. Über den Referenzeingang im Case läßt sich ja jederzeit die Quelle des Ereignisses feststellen. |