From: Lee P. <le...@sa...> - 2007-10-02 20:20:06
|
Good enough Mark, In reality, my issue was solved with the isMinimized and isMaximized methods so all the Window Object code has now been removed. Lee Mark Miesfeld wrote: > On 10/2/07, Lee Peedin <le...@sa...> wrote: >> Mark Miesfeld wrote: >>>> 1794881 >>> There is not a clear solution on this one. I am going to document the >>> best work around for the time being. I will probably close it before >>> 3.2.0. >>> >> Mark, >> I thought the code you gave me that I included in the bug submission was all it took to fix this. > > Lee, > > When I looked at this later, I realized that the design of the > WindowObject was that new objects would be instantiated by the > WindowsManager class. There would be one WindowsManager object > instantiating maybe 100s of WindowObjects. > > In the WindowsClassesBase there is a counting mechanism going on > (which I am not sure is all that worthwhile) that is trying to track > when is the proper time to unregister the the C functions. > > If the WindowObject is made a subclass of the WindowsClassesBase, then > this whole thing gets out of whack unless you call Deinstall for every > WindowObject that is instantiated. This is not feasible. > > The best thing to do is to just instantiate a WindowsManager object > before you use a WindowObject in the manner you did when you came > across the original problem. > > The WindowsManager object takes no arguments and you don't have to do > anything with the object. ooRexx will garbage collect it, so it is no > real burden on the programmer. This loads the C functions and avoids > trying to make a change to the existing mechanism or existing code. > > I think the original designers just did not anticipate that anyone > would try to create a WindowObject without already having a > WindowsManager object created. > > At this point it seems easier to me to just document what you need to > do, than to try and rework the design. > > In your code where you found this you would just do: > > junk = .WindowsManager~new > winObj = .WindowObject~new(self~hwnd) > > In 3.2.0, the new isMinimized method eliminates the use case you had > for creating a WindowObject outside of the anticpated framework. So, > you don't need to create a WindowObject anymore. > > If we document the above, it is the simpliest solution at this point. > > -- > Mark Miesfeld > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2005. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Oorexx-devel mailing list > Oor...@li... > https://lists.sourceforge.net/lists/listinfo/oorexx-devel > |