M
Matt Gilarde
Guest
First I'll tell you how to fix it - either start the client with -nozgrouping or add NoZGrouping=yes to the Startup section of the registry or your ini file. Now for the explanation: Before 10.2A, OpenEdge parented all windows to a special invisible "owner" window. The owner window kept the windows together in a group so that they all came to the foreground when you clicked on any one of them. When we added forms in 10.2A we also parented them to the owner window. It turned out that forms don't behave well when they have an owner window so in a 10.2B service pack we changed the behavior - now forms are not parented to the owner window so they don't all come to the foreground as a group. And once you've displayed a form we also stop grouping windows together too. The first time you run your example, the Procedure Editor is displayed and is parented to the owner window. When you run the code and create the window, the new window is also parented to the owner window. This makes the Procedure Editor window and the new window move together as a group. Then you click the button and display the form. The form is not parented to the owner window so it's not part of the group. We also turn off the grouping because a form has been displayed. Clicking on the new window brings it and everything in its group (the Procedure Editor window) to the foreground, covering the form. When you run the window the second time it doesn't get added to the group with the Procedure Editor because we turned off the grouping when you displayed the form the first time. It is on its own. So is the form. None of the windows or forms are grouped so they move independently. The -nozgrouping startup parameter and NoZGrouping=yes registry setting disable the grouping at startup so that the windows and forms are never grouped.
Continue reading...
Continue reading...