How about an event that fires when an Array's Index Values (shown at the top left of the array) changes ? I use a arrays of clusters of controls to present configuration options to users and would like to know when they have selected a different index.
In that case, do we want an additional property node: "IndexVals (Signaling)" (think of the difference between "Value" and "Value (Signaling)")? I think it would be powerful.
I think the better solution to this is to not use an array control in the first place. Array controls are typically a bad idea when it comes to providing a control for a user interface. I rarely use them since they are not intuitive for the "regular" user.
I rarely use arrays on the UI as well. When I do so, I usually hide the Index Display and use a separate control (something more self-explanatory like listbox, enum, ...) to select the visible array element(s).
If you're trying to emulate a straight-up Windows app, and if the user has a mouse, and if you don't want nice icons, and if you don't need to resize the scrollbars, then sure, don't use arrays in your UI. But if you're programming for embedded touch panels, I would argue you're going to hard pressed to not use arrays. It simply boils down to customizability and properties available: arrays trump your trees, listboxes, rings, etc.
I would DEFINITELY agree with the statement that a "Vanilla LabVIEW Array should not be shown in a UI" - I would just as likely show an error cluster indicator!!! But there's surely a place for arrays in UI's.
Message Edited by JackDunaway (mechelecengr) on 09-30-2009 07:02 PM
Message Edited by JackDunaway (mechelecengr) on 09-30-2009 07:03 PM
JackDunaway wrote: I would DEFINITELY agree with the statement that
a "Vanilla LabVIEW Array should not be shown in a UI" - I would just as
likely show an error cluster indicator!!! But there's surely a place
for arrays in UI's.
I agree there's a place for them. That's why I and dan_u said "rarely" and not "never".
I agree that this would be a useful addition. I very often use arrays on front panels, often as indicators. 🙂
The event should also be triggered by a scroll bar change, of course (which is also an index change!).
I've had scenarios in the past where I had several vertical 1D arrays next to each other (e.g. a string and a numeric array, because making an array of clusters would waste too much space on frames), and only the rightmost showed the scrollbar. The problem was to scroll all other arrays accordingly whenever the rightmost got scrolled.
An event as suggested would make things like that much easier! 🙂
Let's say I have several measurement results for an instrument such as voltage, current and temperature. I wish to display those in a manner that shows they are all associated with the instrument and I want a graphical indicator (meter for example) display rather than just a numeric. Furthermore, there are several of these instruments and the number of those instruments can vary at run time. I have been putting the indicators in a cluster and then using an array of those clusters to be able to change the number of displayed collections (clusters) of those indicators by changing the number of array rows. Is there a different/better approach ?
Your message doesn't sound like it is a comment about the proposed idea on how to improve LabVIEW, but a more general LabVIEW question that you should be posting in the LabVIEW board.