Board index » delphi » Help! Child system menu lost behind panel

Help! Child system menu lost behind panel

My app has a menu, a panel with speedbuttons which is top aligned in the
parent, and an MDI child to contain data.  SOMETIMES, the system menu of
the of the child disappears behind the speedbutton panel when the child
is maximized; no scrollbars appear to allow access to the top part of
the screen.  The only way to regain control is to shut down the child
and reopen it. Other times, the maximize works perfectly, with the
system menu for the child appearing below the system menu of the parent.

I think this is a problem of an inconsistent definition of the client
area of the parent window when a menu or top aligned panel is present,
because if I simply treat the panel as non-existent, and force the
child's top to be no lower on the screen than the height of the panel,
at times it appears aligned to the bottom of the panel, and at other
times it appears the height of the panel below the bottom of the panel;
i.e. sometimes Delphi/Windows thinks the top of the parent client area
is at the top of the panel, and other times it thinks its at the bottom.

Any ideas on how to resolve this?

Jeff Jones

 

Re:Help! Child system menu lost behind panel


On Thu, 11 Dec 1997 07:34:47 -0500, Jeff Jones <ts...@cris.com> thought it was safe to write:
| My app has a menu, a panel with speedbuttons which is top aligned in the
| parent, and an MDI child to contain data.  SOMETIMES, the system menu of
| the of the child disappears behind the speedbutton panel when the child
| is maximized; no scrollbars appear to allow access to the top part of
| the screen.  The only way to regain control is to shut down the child
| and reopen it. Other times, the maximize works perfectly, with the
| system menu for the child appearing below the system menu of the parent.
[lots more trouble]
| Any ideas on how to resolve this?
| Jeff Jones
you might consider changing the size of the mdi window to be top:=panel.height
for this you use setwindowpos(mdihandle,some more stuff); i can't look this
up right now, but the mdihandle is explaned in tform properties help,
setwindowpos in win32.hlp.

Joost de Greef.
let me know if you need a working example.
___________________________________________________________
We have enough youth, how about a fountain of SMART?
___________________________________________________________

Other Threads