ID: Q108718
The information in this article applies to:
Performing many iterations of the ACTIVATE POPUP command in a loop causes an "Insufficient Memory" error to occur. In addition, the arrows in the scroll bars of the Command window may disappear and GDI memory will be exhausted.
ACTIVATE POPUP uses Window's graphic device interface (GDI) resources. DEACTIVATE POPUP does not release GDI resources. Once the GDI resources are exhausted, Windows will return an "Insufficient Memory" error message or may even cause a general protection (GP) fault.
There is no set number of iterations of ACTIVATE POPUP that will trigger an "Insufficient Memory" message.
To avoid the "Insufficient Memory" message, use a RELEASE POPUP <popupname> command after the DEACTIVATE POPUP <popupname>.
Microsoft has confirmed this to be a problem in FoxPro versions 2.5, 2.5a, 2.5b, and 2.6 for Windows. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.
WARNING: Close all running applications and save your data before running this code.
FOR pops = 1 TO 100
WAIT WINDOW "Popup Number "+LTRIM(STR(pops)) NOWAIT
popname = "pop" + LTRIM(STR(pops))
DEFINE POPUP (popname) FROM 2, SCOL()/3
FOR bars = 1 TO 50
barname = "bar" + LTRIM(STR(bars))
DEFINE BAR bars OF (popname) PROMPT barname
ENDFOR
ACTIVATE POPUP (popname) NOWAIT
DEACTIVATE POPUP (popname)
ENDFOR
Additional reference words: FoxWin 2.50 2.50a 2.50b buglist2.50
buglist2.50a
buglist2.50b gpf errmsg err msg buglist2.60 2.6
KBCategory: kbenv kbprg kbbuglist
KBSubcategory: FxenvMemory
Last Reviewed: June 27, 1995