LabVIEWForum.de
Referenz auf Registerkarte: Klassenkonflikt - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Referenz auf Registerkarte: Klassenkonflikt (/Thread-Referenz-auf-Registerkarte-Klassenkonflikt)

Seiten: 1 2


Referenz auf Registerkarte: Klassenkonflikt - Matze - 28.07.2010 10:15

Hallo,

ich habe ein SubVI erstellt, das als Eingang u.a. die Referenz auf ein Registerkartenelement hat.
In einem Projekt funktioniert das (aus dem ich diese Bedienelement erstellt habe), in jedem anderen gibt's einen Klassenkonflikt.

Wieso ist das so?

Lv09_img2
[attachment=28280]
[attachment=28281]


Referenz auf Registerkarte: Klassenkonflikt - jg - 28.07.2010 10:21

Weil deine Referenz im SubVI den Datentyp enthält (also mglw. ein TabControl mit mehr Reitern?).

Lösung: Im FP des SubVI Rechtsklick->Haken bei "Include Data Type" wegnehmen.

Gruß, Jens


Referenz auf Registerkarte: Klassenkonflikt - Matze - 28.07.2010 10:43

Hallo Jens,

das habe ich auch zuerst überlegt, nur dachte ich mir, der Datentyp sei "Referenz auf Registerkarte".
Dann ist dem wohl nicht so, danke.Smile
Es gibt zwar nun diesen roten Konvertierungspunkt, doch as ist nicht so schlimm, denn es funktioniert.


Referenz auf Registerkarte: Klassenkonflikt - Lucki - 28.07.2010 11:07

Bei mir gibt es keinen Konvertierungpunkt, ich habe Dein VI so "repariert":
Das Referenzelement "Registerkarte" im Sub-VI löschen
Die Referenzkonstante "Registerkarte" in MainVI mit der Maus packen und auf das FP des SubVI kopieren.
Das entstehende Referenzelement entprechend verdrahten, es ersetzt das alte.
Altes und neues Referenzelement sehen absolut gleich aus, nur einmal funktionierts und einmal nicht. Ich blicke da auch nicht immer richtig durch. Schief geht es oft wenn man auf eigene Faust Referenzen aus dem Nichts heraus neu erstellt. Wenn man sie aber durch Kopieren von dem, was man später sowieso verdrahten will, erzeugt, liegt man immer auf der sicheren Seite.


Referenz auf Registerkarte: Klassenkonflikt - IchSelbst - 28.07.2010 11:44

' schrieb:das habe ich auch zuerst überlegt, nur dachte ich mir, der Datentyp sei "Referenz auf Registerkarte".
Das Problem dabei ist, dass die Instanz der Registerkarte einen eigenen Typ hat. Der ist zwar von "Registerkarte" vererbt, aber eben ein eigener. Referenzen sind nun aber Instanz-bezogen, nicht Typ-bezogen.

Bedenke, dass jede Registerkarte anders aussieht: Anzahl Reiter und (schlimmer) Namen der Reiter !

Man könnte jetzt eine (stricte) Typdef von der Registerkarte und eine (stricte) Typdef von der Referenz auf diese Registerkarte machen und genau diese Elemente in MainVI und SubVI verwenden. Dann spart man sich bei vielen SubVIs das Anpassen der Referenzen gemäß Lucki


Referenz auf Registerkarte: Klassenkonflikt - jg - 28.07.2010 11:51

' schrieb:Man könnte jetzt eine (stricte) Typdef von der Registerkarte und eine (stricte) Typdef von der Referenz auf diese Registerkarte machen und genau diese Elemente in MainVI und SubVI verwenden. Dann spart man sich bei vielen SubVIs das Anpassen der Referenzen gemäß Lucki
:hmm:Aber dann ist doch das SubVI nicht für beliebige TabControls einsetzbar. Und das ist schließlich das Ziel von dieser ganzen Referenzziererei.

Gruß, Jens


Referenz auf Registerkarte: Klassenkonflikt - Matze - 28.07.2010 12:04

' schrieb:Die Referenzkonstante "Registerkarte" in MainVI mit der Maus packen und auf das FP des SubVI kopieren.
Egal was ich wo wie kopiere, den Punkt habe ich immer. Unsure

' schrieb::hmm:Aber dann ist doch das SubVI nicht für beliebige TabControls einsetzbar. Und das ist schließlich das Ziel von dieser ganzen Referenzziererei.
Genau. Ich deaktiviere mit diesem SubVI die Reiter, die man z.B. während einer Mesung nicht bedienen darf. Das SubVI sollte allgemein sein, sodass ich es überall verwenden kann. Sonst bringt mir das keine Erleichterung.

Es funktioniert auch, aber eben mit dem Konvertierungspunkt.


Referenz auf Registerkarte: Klassenkonflikt - Lucki - 28.07.2010 13:06

' schrieb:Egal was ich wo wie kopiere, den Punkt habe ich immer. Unsure
Also hier das durch Kopieren reparierte VI:
Lv09_img2[attachment=28290] [attachment=28291]


Referenz auf Registerkarte: Klassenkonflikt - jg - 28.07.2010 13:14

@Lucki:
Dann geht aber sowas nicht mehr:
[attachment=28292]
Es ist essentiell, dass in diesem Fall der Datentyp NICHT Teil der Refnum ist.

@Matze:
Der Konversionspunkt würde mich in diesem Fall nicht stören. Manchmal geht es halt nicht ohne, gerade bei Referenzen.

Gruß, Jens


Referenz auf Registerkarte: Klassenkonflikt - Matze - 28.07.2010 13:15

Hallo Lucki,

wenn ich dein "SetTabEnabled.vi" nehme, die Datentypeinbindung entferne (Haken weg), erhalte ich in einem neuen Projekt weiterhin den Konvertierungspunkt.

Edit @Jens: Mich stört er auch nicht sonderlich. Nur denke ich bei den Punkten jedesmal "Huch, da passt was nicht ganz".