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!
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?
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.
' schrieb:Hallo,
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?
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:
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
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..
30.06.2009, 11:44 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2009 11:44 von SteffenSI.)
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.
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' 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.
' 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.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' 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.