Microsoft KB Archive/108718

{| = BUG: Multiple Iterations of ACTIVATE POPUP Cause GP Fault =
 * width="100%"|

ID: Q108718

The information in this article applies to:


 * Microsoft FoxPro for Windows, versions 2.5, 2.5a, 2.5b, and 2.6

SYMPTOMS
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.

CAUSE
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.

RESOLUTION
To avoid the "Insufficient Memory" message, use a RELEASE POPUP command after the DEACTIVATE POPUP.

STATUS
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.

Steps to Reproduce Problem
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
 * }