I'm having some problems with my first MDI-based application and am looking for direction: (OI 3.7)
1) I created my new MDI parent using the manual but it did not automatically create "The MDI Default Menu" as stated in Chapter 5, page 209. I created one manually but I can't get the "Cascade", "Tile" and "Arrange Icons" to work. Tiling works if I invoke it using "Send_Message", "MDITILE". What are the correct parameters for the parent menu?
2) If I read page 202 you can take a regular OI form (with its own menu) and run it as a MDI child. I find that the menu from such a form replaces the MDI parent menu which I don't want it to do. Is there any way to stop the child's menu from appearing without having to create another form that doesn't have any of its own menus?
3) I have a main, child form that starts my process. After a key is entered the form reads in the row. Then it starts another, related child form. When I tell the parent to "TILE","1" it tiles the two forms in the MDI frame. However, the new child form is placed at the top row. How do I tell it to place the new child in the bottom position (below the original child form)?
Thanks in advance - Dave
Dave
1. Send TILE or CASCADE messages to @WINDOW on the mdi menu. I.e. @WINDOW will be the mdi parent. Can be done as a quickevent.
2. This is the default behaviour of MDI in Windows. The child forms menu becomes the active menu. To prevent this you have to delete the menu from the child form entirely. Generally we have all menu options on the MDI parent and programatically hide/show or enable/disable menu options depending upon which MDI child is active.
3. Trap the TILE event and place the windows at the locations that you require. See the SIZE property for info on how to do this.
Tony