28.06.2009, 14:29
Beitrag #1
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
Events eines Controls in anderem VI bearbeiten
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
|
|
|
28.06.2009, 14:39
Beitrag #2
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Events eines Controls in anderem VI bearbeiten
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
|
|
|
28.06.2009, 19:14
(Dieser Beitrag wurde zuletzt bearbeitet: 28.06.2009 19:19 von Lucki.)
Beitrag #3
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Events eines Controls in anderem VI bearbeiten
' 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
Main.vi (Größe: 8,95 KB / Downloads: 197)
Sub.vi (Größe: 6,65 KB / Downloads: 218)
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.)
Beitrag #4
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
Events eines Controls in anderem VI bearbeiten
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
|
|
|
30.06.2009, 11:52
Beitrag #5
|
|
|
30.06.2009, 12:14
Beitrag #6
|
|
|
30.06.2009, 12:45
(Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2009 12:45 von Lucki.)
Beitrag #7
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Events eines Controls in anderem VI bearbeiten
' 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.
|
|
|
30.06.2009, 15:26
Beitrag #8
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
Events eines Controls in anderem VI bearbeiten
@Lucki, bin komplett deiner Meinung!
|
|
|
30.06.2009, 15:47
Beitrag #9
|
|
|
30.06.2009, 16:04
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Events eines Controls in anderem VI bearbeiten
' 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.
|
|
|
| |