LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

[Open discussion] About advanced features of building LV programs

Many of you probably know the "VIPM" program, it's a very useful "container" for managing VI libraries, install/uninstall/update them in a blink of an eye.
The latest version of the program was made in LV8.2.1
I 'm taking it as an example of "advanced LV programming" (I think it is).
I have some questions, I cannot figure out the tricks they used
 

( 1 ) See picture attached. How is it possible to pop up the little window on the low-right corner (VIPM Legend) ??? is there any trick?

( 2 ) How to do the "StatusStrip" object(bottom zone of window with "Ready...") ??? In MS Visual Studio it is an object buildt in the enviroinment

(3 ) The Ring menu with pictures inside, are they customed ring menu?

( 4 ) The black - pointed - circle upper right corner is a moving picture, when it's updating or checking something, it becomes black and rotate, so the user
understands the "busy state"
 
( 5 ) The search control string implements a "search on the fly" so that the elements in the table are updated (filtered, for example considering the "name" field) every new character you digit inside.
How to implement it? Fire and handle an event, something like "Search_button.typedChar" ?
 
( 6 ) The upper bar with the buttons... I think they just lay down thos buttons, it's not an "object" like in MS Office where you have a "toolbar" (actually many) and user can add/remove buttons etc....
A Labview limitation? Workaround?
 
( 7 ) And one more feature I've found:
I think that also the installation program was made in LV. I mean, as an entire application, WITHOUT using the Project->Build Specification -> new installer
wizard.
In fact I think they don't check and include the presence of LV runtime 8.2.1, they simply state it is required, while the NI wizard automatically build a "window installer compliant" sort of "package" with all the stuffs (runtimes, etc...).
When you run an installer made with wizard, it ensure the program is registered under your "Control panel -> add/remove programs" list (Win Xp).
VIPM is not registered there, so you unistall by running their "custom unistaller".
I think the default wizard is pretty "poor" , what do you think? If you run VIPM installation you can think "it would be impossible to do this with the wizard
installer". Seems they replicated the steps of installation manually, keeping total control where to copy link, files, etc....
 

 
I hope to hear opinions about these topics from experienced LV users that go beyond the simple use of what NI give us.
Thanks and have a nice day
0 Kudos
Message 1 of 5
(4,515 Views)

Hi Slyfer,

Michael does some very nice work doesn't he?

Michael A. runs LAVA and would probably love to share how he did all of those tricks.

If you don't get answers to all of your Q's here, try reposting the same Q's to LAVA.

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 2 of 5
(4,497 Views)
regarding (2), I think it is probably just a transparent string indicator, not an actual statusbar "object".

If you are curious, you can dissect the old package manager (open g commander) as that is open source, you can get it from sourceforge.
0 Kudos
Message 3 of 5
(4,494 Views)
1 The legend.... I don't know It could be some windows .dll specialization
2 Probably a string with tranparent border and background on a 2nd pane
3 I think a custom pop-up VI with a picture control (a lot of programming)
4 It's an animated gif, switched between hidden and visble
5 On a string control there's a property 'Update Value while editing' this means an event is fired for every keystroke, this will invoke a search event
6 It are just plain boolean buttons on a pane, Michael has written quite somethign about this.
7 They written a complete installer

I am all assuming this



Ton

Free Code Capture Tool! Version 2.1.3 with comments, web-upload, back-save and snippets!
Nederlandse LabVIEW user groep www.lvug.nl
My LabVIEW Ideas

LabVIEW, programming like it should be!
0 Kudos
Message 4 of 5
(4,472 Views)

@Slyfer wrote:
Many of you probably know the "VIPM" program, it's a very useful "container" for managing VI libraries, install/uninstall/update them in a blink of an eye.
The latest version of the program was made in LV8.2.1
I 'm taking it as an example of "advanced LV programming" (I think it is).
I have some questions, I cannot figure out the tricks they used

What some may call tricks, I call, working with the tools at hand to get the job done. All of the development was done in pure G. No DLL's or ActiveX required. I'd also like to say that I'm not the sole developer of VIPM. There were a few others at JKI, that contributed to its success. I was however deeply involved in the user interface implementation. The decision making process about how the software should look and feel was a team effort. Every button, menu item and graphic was a concious decision and had to be peer reviewed. Thank you for categorizing VIPM as an example of advanced labview programming. That means a lot to me and the VIPM development team.


( 1 ) See picture attached. How is it possible to pop up the little window on the low-right corner (VIPM Legend) ??? is there any trick?

User interface development sometimes requires a little knowledge in using graphics editing software. LabVIEW supports the use of *.png images on the front panel. PNG supports alpha blending and thus you can have images that appear to fade away or cast shadows. The legend is an indicator that has an image of a rectangle that casts a shadow. The window tracking is done by programmatically moving the indicator as the window resizes.


( 2 ) How to do the "StatusStrip" object(bottom zone of window with "Ready...") ??? In MS Visual Studio it is an object buildt in the enviroinment

This is simply a LabVIEW pane with a text box indicator.

(3 ) The Ring menu with pictures inside, are they customed ring menu?

You can do a lot of this stuff using the control editor. The ring doesn't have pictures inside it. It has pictures over it. Can you tell the difference? It doesn't matter how it's implemented but how it looks and feels. if it feels like it's inside the ring then it is.

( 4 ) The black - pointed - circle upper right corner is a moving picture, when it's updating or checking something, it becomes black and rotate, so the user
understands the "busy state"

LabVIEW supports animated GIFs. It's simply a matter of toggling between static and animated GIF. Again, knowledge of using a graphics program and how to create animated GIFs comes in handy here. There was a discussion on LAVA about this. Also over here.

( 5 ) The search control string implements a "search on the fly" so that the elements in the table are updated (filtered, for example considering the "name" field) every new character you digit inside.
How to implement it? Fire and handle an event, something like "Search_button.typedChar" ?

Dynamic events definitely help here. I mean, you can just register on value change and filter your list contents. Of course you need to program your filtering algorithm. Nothing is free in the LabVIEW world. Except the LabVIEW Wiki, the LAVA Forums and the Code Repository.

( 6 ) The upper bar with the buttons... I think they just lay down thos buttons, it's not an "object" like in MS Office where you have a "toolbar" (actually many) and user can add/remove buttons etc....
A Labview limitation? Workaround?

Yes, the buttons are laid down flat. It's not a toolbar... so? Toolbars are so yesterday and most people don't bother to configure them anyway. As another poster mentioned there is a better explanation on the hovering effect here.

( 7 ) And one more feature I've found:
I think that also the installation program was made in LV. I mean, as an entire application, WITHOUT using the Project->Build Specification -> new installer
wizard.
In fact I think they don't check and include the presence of LV runtime 8.2.1, they simply state it is required, while the NI wizard automatically build a "window installer compliant" sort of "package" with all the stuffs (runtimes, etc...).
When you run an installer made with wizard, it ensure the program is registered under your "Control panel -> add/remove programs" list (Win Xp).
VIPM is not registered there, so you unistall by running their "custom unistaller".
I think the default wizard is pretty "poor" , what do you think? If you run VIPM installation you can think "it would be impossible to do this with the wizard
installer". Seems they replicated the steps of installation manually, keeping total control where to copy link, files, etc....

I'm not sure if this is a compliment or a criticism. The installer was done using pure G. The main reason for this was that we wanted the installer to be cross-platform. The only other way was to use a JAVA based installer which we couldn't justify using. This is not to say that this won't change in the future. Everything seems to work fine right now and all users of VIPM already have LabVIEW installed so it's not a huge leap to ask them to make sure they have the proper LabVIEW run-time engine. 

I hope to hear opinions about these topics from experienced LV users that go beyond the simple use of what NI give us.
Thanks and have a nice day

One last thing that people ask a lot about is the MCL in VIPM. An explanation of this is over here. If you want to soak in some more discussions on advanced LabVIEW programming topics I suggest to head on over to the LAVA Forums.


Michael Aivaliotis
VI Shots LLC
Message 5 of 5
(4,438 Views)