28.07.2010, 10:15
Beitrag #1
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
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?
SetTabEnabled.vi (Größe: 23,48 KB / Downloads: 242)
MainVI.vi (Größe: 5,65 KB / Downloads: 242)
|
|
|
28.07.2010, 10:21
Beitrag #2
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
28.07.2010, 10:43
Beitrag #3
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
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.
Es gibt zwar nun diesen roten Konvertierungspunkt, doch as ist nicht so schlimm, denn es funktioniert.
|
|
|
28.07.2010, 11:07
Beitrag #4
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
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.
|
|
|
28.07.2010, 11:44
Beitrag #5
|
IchSelbst
LVF-Guru
Beiträge: 3.696
Registriert seit: Feb 2005
11, 14, 15, 17, 18
-
DE
97437
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
' 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
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
|
|
|
28.07.2010, 11:51
(Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2010 11:52 von jg.)
Beitrag #6
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
' 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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
28.07.2010, 12:04
Beitrag #7
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
' 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.
' 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.
|
|
|
28.07.2010, 13:06
Beitrag #8
|
|
|
28.07.2010, 13:14
Beitrag #9
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
@Lucki:
Dann geht aber sowas nicht mehr:
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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
28.07.2010, 13:15
(Dieser Beitrag wurde zuletzt bearbeitet: 28.07.2010 13:17 von Matze.)
|
Matze
LVF-Team
Beiträge: 1.027
Registriert seit: Apr 2010
20xx
2010
DE_EN
7xxxx
Deutschland
|
Referenz auf Registerkarte: Klassenkonflikt
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".
|
|
|
| |