10-05-2006 01:58 AM
10-05-2006 09:54 AM
This is an occasional issue that I have seen too, though not with a DLL. Is your popup related to some slow I/O - perhaps a sluggish network drive?
I can't provide real answers, but you may want to review this thread for ideas that may work for you.
(Also: this thread and this thread)
Please let us know if you discover anything new.
--Ian
10-06-2006 03:13 AM
Hello,
I also have a problem with MessagePopup windows, or windows that are displayed using the InstallPopup function. I have the feeling that these windows do not stay on top of all other panels of the applications all the time. Like when I first display a message using MessagePopup and then change the value of a control on my Main Panel (before user hits the OK button), the Popup Message disappears behind the Main Panel.
I think that Popup Panels should always stay on top (floating) of the other panels of the application, since the other panels can not be operated and the application might seem to have crashed... So even when a panel is displayed using InstallPopup and then an other panel is displayed using (DisplayPanel), the Popup Panel should always be on top of the other panel. This would make life a lot easier
10-06-2006 11:38 AM
10-06-2006 11:44 AM
10-10-2006 08:43 AM
Hello Luis,
thanks for the response. I also tried to reproduce it in a simple project, but I did not succeed. Everything works as expected and the messages stay on top of the other panels. In my original project, I am using several threads, but the popup windows are always loaded from the main thread. I will have to dig some deeper into my code, but unfortunately I do not have any time now to do so. I will come back to you if I am able to reproduce the strange behaviour.
10-10-2006 02:12 PM
10-10-2006 05:10 PM
10-17-2006 10:41 PM
03-03-2011 10:44 AM
This may be late answer, and is probably what was described indirectly in all the messages above, however I will add my two cents worth.
If the timer function that displays the popup is an asynchronous timer, then it runs in a different thread than the main program. I suspect that the main panel and the popup panel are operating in two separate threads, which means that either one can "hide" the other one. I have found that it is best to load/display/installPopup/ etc. all panels, including the built-in CVI message/confirm/fileselect popups in the same thread. This is good design anyway because it prevents the UI from interfering with the timing of the other threads.
If you have a separate thread that needs to display a popup that works like a modal dialog box over all of your application displays, you can do this by using PostDeferredCallToThread to a run a function that displays the popup in the main thread.