From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabWindows/CVI Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
MarcelK

Release source code to some UI controls

Status: New

The problem with the CVI standard controls is that once a feature is missing, it's VERY difficult to add for a normal user. What cruel hacks I had to implement to circumvent some limitation (like dynamically overlaying canvas controls over a scrollable table to simulate joined cells) is truly beyond description. Same with graphs controls (try implementing some with five distinct Y axes, fun for the whole family!). I always found you guys to be pretty responsive when it comes to feature requests, but some features are a) so application specific that I don't even dare requesting them and b) even if you'd agree to implement them, it takes about two to three years until they are released and the necessary runtime is deployed worldwide in my company.


So, please consider opening the source code of some of the more complex UI controls (like the table and graph controls), at the very least to some interested users like me (AFAIK my company even has a standing NDA agreement with NI). I already considered doing them from scratch, but then I noticed that I'd even have to re-invent the scroll bars that come with them! This was never a problem with any other platform I had used in the past (like Delphi), because they always came with full source code to the whole library.

2 Comments
RobertoBozzolo
Proven Zealot

I missed this suggestion when it was posted originally.

Since you are speaking about it, I wonder if you have taken a look at my Multi-Axes graph in CVI example



Proud to use LW/CVI from 3.1 on.

My contributions to the Developer Community
________________________________________
If I have helped you, why not giving me a kudos?
MarcelK
Member

Yes, I have seen your example and my solution is based on it, so thanks for that. Still it's a hack that gets overly complicated the more features you add to it.

 

In the meantime I have written my own table control from scratch that does exactly what I want it to do and is magnitudes faster doing it, partly because I can rely on optimized data structures and partly because the graphs displayed in the table are generated on-demand when they come into view, versus all at once when building the table.

 

This experiment actually proved to be so successful that I will probably write my own graph control as well, in the end it's actually less hassle this way.

 

What is still truly missing and the minimum NI should provide is a scroll-bar control (that looks like all the other scroll bars! I know about the hideous CVI scroll-bar example...) or provide the canvas controls with scroll-bars. Currently I solve this by positioning a table control directly behind my canvas and reacting to the scroll messages of the table control... again a hack.