Hello. This is your friendly neighborhood R&D guy for LabVIEW classes.
Regarding your request about property and invoke nodes as relates to LV classes....
Short story: We would like, someday, to support the property node. We have no intention of ever supporting the invoke node.
Long story: As we were creating LV classes, we had to evaluate
the right programming interface for these things. We wanted LV classes
to behave as new data types in LV. A developer should be able to create
a LV class, then give it to someone who doesn't even know OO
programming, and that second programmer could use the new data type
without learning a lot of new concepts. From this principle, we held
fast to the idea that the programming interface should be subVI calls
whereever possible. The invoke node is really nothing more than a VI
minus the icon. If you want, you can popup on any subvi node and
uncheck the option "View as Icon". This will make the node display in a
way that has the terminals listed as text, like the invoke node. So, at
the end of the day, the invoke node is simply a subroutine call in LV
that is language dependent, as opposed to the language independent
iconography of LV generally.
The property node is a slightly different story -- the functionality of
a property node is actually different than an invoke node as its
terminals are various subsets of the properties available, not a fixed
list of parameters like the invoke node. The property node provides a
nice interface for setting multiple properties in a block and only
having to check a single error return. Very friendly. Our intent is to
allow you to create a VI that has 5 terminals: object in, object out,
error in, error out, and either a single input or a single output of
your chosen type. VIs with this conpane could be marked as "properties"
of the class and would show up when you wire the class wire to the
property node. We would call the subVIs behind the scenes as needed to
get/set the properties.
This is on the longer term roadmap because it is "syntactic sugar" --
it sweetens the programming style, but it is not necessary to program
effectively. You can get the same effect by writing those same VIs and
stringing them along on a block diagram "railroad track" style. We'll
probably get around to it in three or four versions of LV -- there are
some major user requests that impact functionality that have to get
done first.
PS -- in the next version of LV, wiring the LV class to the
property/invoke nodes will break the wire so we'll avoid confusion in
the future of people thinking there's a way to use these nodes.
Message Edited by Aristos Queue on 04-02-2007 09:56 AM