LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Dockpanel for LabVIEW

Hi there,

 

is it possible to implement a dockpanel in LabVIEW like the IDE of Eclipse or Microsofts Visual Studio?

I want to have a main window who has some child windows. These childs can float as a toolbox or dock in the main window.

I tried to implement the .NET "Dockpanel Suite" but it doesn't work.

Any help? 

0 Kudos
Message 1 of 9
(4,622 Views)

Making child windows in labview is not all that trivial since it is not native to the api.  you can use the win 32 dlls to get a handle of one window and make it a child of another (like a mdi application) but this is not the best solution to the problem since it is not that stable (i had some crashing in the past when I did this).  Usualy there is more than one way to solve a problem.  I have used floating windows that can be shown/hiden from the front panel and run asynchronous to the main vi (except for a synchronization on application exit) this is much like the tools palette in labview, not docakble but close.

 

 

Paul Falkenstein
Coleman Technologies Inc.
CLA, CPI, AIA-Vision
Labview 4.0- 2013, RT, Vision, FPGA
0 Kudos
Message 2 of 9
(4,593 Views)

I've already tried the solution with the mdi application and the user32.dll. In my testcase it works. But there isn't any docking effect.

What's the thing with the floating windows? Can you give me an example?

0 Kudos
Message 3 of 9
(4,588 Views)

See reply #16 in this thread.

 

There you will find a zip that shows one way of implementing docking/undocking.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 4 of 9
(4,570 Views)
That's not exactly what I meant. In this example I can only dock the panel in a fixed position. But I want to drag the panel e.g. to the corner of the parent and the child docks to that side.
0 Kudos
Message 5 of 9
(4,568 Views)
That's not exactly what I meant. In this example I can only dock the panel in a fixed position. But I want to drag the panel e.g. to the corner of the parent and the child docks to that side.
0 Kudos
Message 6 of 9
(4,562 Views)

Sorry if my previous message implied a complete solution. That demo was linked only to serve as an example that can be used to start since there is no "ready made" solution for your query.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 7 of 9
(4,552 Views)

You could probably fairly easily do this using subpanels.  Your floating window will always be running top-level and communicating with your main app using the usual methods (queues, events, etc.).  When docked, it is hosted in a subpanel.  You can pop it in and out of the subpanel with almost any sort of event (button press, mouse up, etc.).  The details can get fairly hairy, however, since you need to manage pane and subpanel sizes and coordinate events between two top-level VIs.  It is relatively simple conceptually, but the details can take awhile to get right.

 

I did a fake of this in prerelease LabVIEW 6.0 as a demo for control references (new in that release).  In that demo, the controls were duplicated on the floating window and the main window.  The main window controls were hidden and the window resized when the floating window was up.  This is still a viable method, but would take a fair amount of maintenance and is not very flexible.

0 Kudos
Message 8 of 9
(4,501 Views)

DFGray wrote:

You could probably fairly easily do this using subpanels.  Your floating window will always be running top-level and communicating with your main app using the usual methods (queues, events, etc.).  When docked, it is hosted in a subpanel.  You can pop it in and out of the subpanel with almost any sort of event (button press, mouse up, etc.).  The details can get fairly hairy, however, since you need to manage pane and subpanel sizes and coordinate events between two top-level VIs.  It is relatively simple conceptually, but the details can take awhile to get right.

 

I did a fake of this in prerelease LabVIEW 6.0 as a demo for control references (new in that release).  In that demo, the controls were duplicated on the floating window and the main window.  The main window controls were hidden and the window resized when the floating window was up.  This is still a viable method, but would take a fair amount of maintenance and is not very flexible.


Hi Dr. Gray,

 

Take a look athat example i posted in this thread to see if that example makes it a little easier to implement.

 

Ben

Retired Senior Automation Systems Architect with Data Science Automation LabVIEW Champion Knight of NI and Prepper LinkedIn Profile YouTube Channel
0 Kudos
Message 9 of 9
(4,498 Views)