Tag

Push Menu, Pop Menu, Push Popup, Pop Popup

These commands let you save and restore a defined menu or popup, so you can replace it with another, then return to it.

Usage

PUSH MENU MenuName POP MENU MenuName [ TO MASTER ] PUSH POPUP PopupName POP POPUP PopupName
The PUSH and POP in these commands are the traditional operations of a stack—a last-in, first-out data structure that resembles our desks. You put things into a stack (or push them) one at a time. When you remove something (or pop it) from the stack, you get the last one you added first. (Calling and returning from procedures uses a stack, too—when you call a procedure, the one you're in gets pushed onto a stack. Each subsequent call adds another procedure to the stack. When you hit a return, the top item on the stack—the routine that called the one you're in—is popped.)

FoxPro gives us access to several stacks, including the two here, for menu and popup definitions. We rarely use the popup stack, but the menu stack is really handy. You can PUSH MENU _MSYSMENU to save the current system menu, then run a menu program (MPR) that makes some changes—maybe adds another pad or removes a few bars. When you're done with the operation, just POP MENU _MSYSMENU and you have the original menu back.

You can use the menu stack to make your menu work the way FoxPro's does. On the way into a particular form, you can add a menu pad specific to that form. When you leave the form, you can get rid of that pad. In an event-driven app, you'll probably want to do all this menu handling in the form's (or formset's) Activate and Deactivate events.

Example

* In a form's Activate event PUSH MENU _MSYSMENU DO MyForm.MPR   * In the form's Deactivate POP MENU _MSYSMENU

See Also

Define Menu, Define Popup, Menus


View Updates

Copyright © 2002 by Tamar E. Granor, Ted Roche, Doug Hennig, and Della Martin. All Rights Reserved.



Hacker's Guide to Visual FoxPro 7. 0
Hackers Guide to Visual FoxPro 7.0
ISBN: 1930919220
EAN: 2147483647
Year: 2001
Pages: 899

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net