LabVIEWForum.de
LV8.5: Problem mit objektorientierter Programmierung - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: LVOOP (/Forum-LVOOP)
+---- Thema: LV8.5: Problem mit objektorientierter Programmierung (/Thread-LV8-5-Problem-mit-objektorientierter-Programmierung)



LV8.5: Problem mit objektorientierter Programmierung - BastiFantasti - 22.07.2008 08:49

Guten Morgen,

ich habe eine Frage zur objektorientierten Programmierung in LV8.5.
Um mich einzuarbeiten hab ich mir das Beispiel unter:

NI Beispielsuche > Neue Beispiele für LV8.x > Objektorientiert > Boad Testing.lvproj

herangenommen.

Das mit den Klassen und den jeweiligen SubVIs ist alles klar soweit. Aber bei,

siehe: object-oriented > Test_Board_OBJECT.vi > unteres grünes vi "ABC-1" (Get Test Name.vi) > Get unique Test id

Wenn ich auf das Get unique Test id klicke fragt mich LV welche Implementierung ich darstellen will.


Jetzt aber wirklich die Frage Rolleyes:

Wie kann ich in einem eigenen Projekt LV dazu bringen, wie in diesem Projekt, mehrere vorhandene gleichnamige VIs (wie hier) zu implementieren?

Ich kann immer nur ein einzelnes VI einfügen was mir ja aber nichts bringt.

Wäre für Tipps dankbar

Grüße

Basti

[EDIT]

hier noch Bilder [attachment=13608]


LV8.5: Problem mit objektorientierter Programmierung - eg - 22.07.2008 09:24

Das heisst VI for Overriding.

Wenn du eine Klasse von einer anderen ableitest und in beiden gleichnahmige VIs erstellst, wobei du auch in Optionen angibst, dass dieses VI zum Überschreiben (Übersteuern) bestimmt ist. Ach ja, die Anschlüsse mussen natürlich gleich belegt sein.

Gruß, eg

P.S. sowas geht auch ohne LVOOP und heisst Polymorphes VI.


LV8.5: Problem mit objektorientierter Programmierung - BastiFantasti - 22.07.2008 09:43

' schrieb:Das heisst VI for Overriding.

Wenn du eine Klasse von einer anderen ableitest und in beiden gleichnahmige VIs erstellst, wobei du auch in Optionen angibst, dass dieses VI zum Überschreiben (Übersteuern) bestimmt ist. Ach ja, die Anschlüsse mussen natürlich gleich belegt sein.

Gruß, eg

P.S. sowas geht auch ohne LVOOP und heisst Polymorphes VI.


Danke für deine Hilfe, werde schauen ob ich das so hinbekomme :-)


LV8.5: Problem mit objektorientierter Programmierung - BastiFantasti - 22.07.2008 10:11

' schrieb:Das heisst VI for Overriding.

Wenn du eine Klasse von einer anderen ableitest und in beiden gleichnahmige VIs erstellst, wobei du auch in Optionen angibst, dass dieses VI zum Überschreiben (Übersteuern) bestimmt ist. Ach ja, die Anschlüsse mussen natürlich gleich belegt sein.

Gruß, eg

P.S. sowas geht auch ohne LVOOP und heisst Polymorphes VI.

Irgendwie find ich das in den Optionen nicht. Kannst du mir sagen wo ich das einstellen muss, damit das klappt?

Danke


LV8.5: Problem mit objektorientierter Programmierung - eg - 22.07.2008 10:27

' schrieb:Irgendwie find ich das in den Optionen nicht. Kannst du mir sagen wo ich das einstellen muss, damit das klappt?

Danke


Hier ein Screenshot


LV8.5: Problem mit objektorientierter Programmierung - BastiFantasti - 22.07.2008 10:58

' schrieb:Hier ein Screenshot

Danke, ich habe es mittlerweile gefunden, hab aber festgestellt, obwohl ich 3 Unterklassen identisch angelegt habe, kann ich das Override VI nur bei einem Auswählen. Bei den andern beiden ist es ausgegraut. Bin noch auf der Suche warum ?!?

Die Lösung aber für mein Problem war:

Die SubVIs müssen, wie du schon geschrieben hast die gleichen Ein- / Ausgänge und Namen (GetInstrument.vi) besitzen. Entscheidend ist aber auch, dass man den Klasseneingang auf (rechtsklick auf Verdrahtungspad ) > Dieser Anschluß ist "Dynamischer Dispatch Eingang" setzt. Sonst funktionierts bei mir nicht.