VB6 IDE crashes with DockingPane |
Post Reply |
Author | |
pate
Groupie Joined: 27 April 2009 Status: Offline Points: 36 |
Post Options
Thanks(0)
Posted: 16 September 2009 at 5:25pm |
Has anyone else had problems with the DockingPaneManager in the VB6 IDE. In the past couple of months I have been integrating the Docking Pane Control on one of the Windows of our application. It CONSTANTLY crashes the IDE during development as I make changes and work on code. It always happens when I finish a test session and I exit the application (running in IDE). The app shuts down, but the VB6 Run button shows it still be running. If you click on the stop button it crashes the whole IDE. It seems like the IDE gets into a state where there is not longer enough memory to work with or something is unstable. Eventually it happens enough times that it is completely repeatable and I have to reboot my machine to get it back to a usable state. Probably crashed 40 times today. The same version of the program with out the DockPane added to that screen rarely crashes in the IDE, maybe once every month or so. This not encouraging for me to want to make the bold step of unleashing this on our customer base. The setup is a main Tab control which host several picture boxes as containers that act as different "screens" in the program, except for the one for the Docking Pane. On that one I have the CodeJock resizer control which hosts the DockingPaneControl. In each of the 18 panes is a picture control attached by the handle. Then on each picture control of each pane is the actual control that the user works with. Works fine when it is running, never a problem there. Only when I exit the application it often brings the whole IDE down.
I'd really like to get this to work, the movable / dockable panes open up so much in the interface, I'm willing to work with this some more, but don't want to invest any more time in it, if this is just how it is with this control. Any help advice would be appreciated. I am on current support until May 2010.
***ADDED NOTE*** After much investigation tonight, I have found that the crash is almost always when there is just code windows in the VB6 IDE. If I choose "View Object" to show the Design window for the Main form, then I can use it without a problem (at least in limited testing). It seems like when I show that design window that has the DockPane control it resets something that allows it to work properly. I'll experiment with this tomorrow to see if these is truly the cause and effect. I'd still like to know if someone (tech support? -- I am on maintenance, look it up) knows why this behavior is like this.
Thanks, Melvyn Pate
|
|
Oleg
Admin Group Joined: 21 May 2003 Location: United States Status: Offline Points: 11234 |
Post Options
Thanks(0)
|
Hi, Instead Resizer control try simple PictureBox.
|
|
Oleg, Support Team
CODEJOCK SOFTWARE SOLUTIONS |
|
pate
Groupie Joined: 27 April 2009 Status: Offline Points: 36 |
Post Options
Thanks(0)
|
I deleted my 3 previous post and will summarize here. After MUCH experimentation and testing, I think I have the project sufficiently stable so that I can work with it on a daily basis. Of course, we will only know for sure months from now, but for now it looks stable and I'll give it a go. I'll summarizing my findings here, in case others run into: It's a medium-sized VB6 project that crashes the VB6 IDE when using the DockingPane control. Small projects seem to be fine. This is a 7 year old project that has been extremely stable in the VB6 IDE, so I am very certain that adding the DockingPane control to the project is the source of the problem. I am not saying that Codejock is at fault, it may be some other vendor doing something wrong, but the problem started when we introduced the DockingPane control. The project is built on an underlying tab control that switches tabs to provide different "screens" to the user, each one with a picturebox container control for the controls on that screen. On ONE of the tabs is the DockingPane control. Each pane has an attached picturebox control with other controls on them. Here are a few observations on what seems to make it work without crashing the IDE: 1. Most of the setup of the DockingPane control was done in the form_activate Sub. Moving most of this early setup work to form_load helped tremendously. 2. Initially I had the Codejock resizer control as the main container control for that screen. Switching to a normal picturebox as Oleg suggested, really cut down on the number of IDE crashes, but it still hung quit a bit after an IDE run. 3. What seems to have fixed it (at least as a workaround), is to show the Object for the main form when the project first loads into the VB6 IDE. Initially it just shows the code window for that form, you have to specifically tell it to show the object window. Doing the above 3 have gotten the project back to a usable state. I hope this helps anyone else that may have run into this. Also, I cannot dismiss the possibility that the problem just may be some incompatibility between DockingPane and some other third party control I use. Or even more likely the fact that I use the CodeSmart IDE add-in in my VB6 environment (by the way, a great development tool to enhance the Visual Studio IDE). If anyone has an idea of what is the root cause of this, I'd still like to know. But for now, I'm proceeding with this project.
-Melvyn
|
|
jpcoffeyXXX
Groupie Joined: 16 August 2005 Location: United States Status: Offline Points: 31 |
Post Options
Thanks(0)
|
Melvyn, I went through very much what you are going through. While I cannot remember what I did entirely to mitigate the problem, one thing I did do was to destroy the docking panes on the Form_QueryUnload event. Syntax,
'Destroy the docking panes DockingPaneObject.DestroyAll where DockingPaneObject is the name of your docking pane. That helped the most. I also put all of the controls in picture boxes and use picture boxes exclusively as the docking panes. I also set, DockingPaneObject.EnableKeyboardNavigate PaneKeyboardUnused I don't need to manage the docking panes via the keyboard as they are only being used as splitters, so I eliminated any facility that was redundant. Since getting through the problem, my environment is very stable. Good luck. Sincerely, John P. Coffey JobTabs Job Search & Resume XtremeSuite Version 13.2 - VB6 Service Pack 6 |
|
pate
Groupie Joined: 27 April 2009 Status: Offline Points: 36 |
Post Options
Thanks(0)
|
Thanks John, I will try Destroyall, not sure if I tried that. After weeks of being able to make it crash on cue, it suddenly stopped doing it about a week ago. And that is just about the time I added the Vista Task Dialg to the project. I also noticed that since then, I don't hear the hard drive rattling near as much as the debug session comes to end. It quickly gets back to Edit mode ready for me to code again. So, for now it is working fine and before I have found a workaround (just show the main_form object before typing any code and it would never crash). Thanks for your input, i will try it again if it does it again. Also, I am sure I have an older version of the code that doesn't have the CodeJock Task Dialog added yet. I am going to add it and immediately see if that is the issue.
|
|
pate
Groupie Joined: 27 April 2009 Status: Offline Points: 36 |
Post Options
Thanks(0)
|
Another thing that has really helped with this issue, is I had the option in the VB6 IDE to Save when the project started turned off. After turning it on, it seems to be much more stable as well. I know some people don't develop like that, and I'd prefer to have it off myself. But if it stabilizes this issue, then it is a compromise I am willing to make. Also, I want to note I have not had any problems with the Dock control running, only from within the VB6 IDE as noted above. It took a while to get this all moved over from the previous way I had se things up to using the Dock control, but the results are very impressive. Our users generally love the docking facility because they can set up a very congested screen any way they like. |
|
Baldur
Senior Member Joined: 22 November 2006 Location: Germany Status: Offline Points: 244 |
Post Options
Thanks(0)
|
The IDE will crash if you stop the debugging or apllication from within the IDE.
In this case, not all classes (including COM) will receive the Terminate-Event.
If you must kill the running debugging session, you can do this but you should restart the IDE.
The second reason is, if your application ends normally, you must destroy all panes per code. If you don't do this, the IDE will crash somtimes later.
|
|
Post Reply | |
Tweet
|
Forum Jump | Forum Permissions You cannot post new topics in this forum You cannot reply to topics in this forum You cannot delete your posts in this forum You cannot edit your posts in this forum You cannot create polls in this forum You cannot vote in polls in this forum |