Microsoft KB Archive/134977

= FIX: Error Occurs When Remove Object That Has Pending Code =

Article ID: 134977

Article Last Modified on 3/24/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q134977



SYMPTOMS
When a new form or a form that has been recently modified is instantiated for the first time by using the DO FORM command or by any other means, the user sees an error message and Visual FoxPro closes.

 In Windows for Workgroups version 3.11, the error is a Win32S error. In Windows NT, the error is an Application error. In Windows 95, the error is an illegal operation error similar to this one:

This program has performed an illegal operation and will be shut down. If the problem persists, contact the program vendor.

The details presented in Windows 95 are similar to this:

Visual FoxPro caused an invalid page fault in module VFP.EXE at 0137:0040dbc5."





CAUSE
In one of the methods of one (or more) of the objects, the developer has placed at least one command in the code call stack. (The code call stack is a list of pointers to Visual FoxPro commands that will run when a specified event takes place.) The code placed in the call stack is triggered by a specific event. In this case, the specific event takes place during the form load procedure.

That triggered code, or other code in a method of one of the other objects on the form, removes the object and its methods from the form. Therefore, when the pointer in the call stack triggers the code, the problem occurs because the owning object, along with the code, has been removed.



WORKAROUND
There may be times when the developer needs to have an object rendered invisible to the user. Rather than issuing a REMOVEOBJECT, the developer can set the object's visible property to false (.F.).



STATUS
Microsoft has confirmed this to be a problem in the Microsoft products listed at the beginning of this article. This problem was corrected in Visual FoxPro 3.0b for Windows.



Steps to Reproduce Problem
  In the Command window of Visual FoxPro, issue this command: MODIFY FORM TEST </li> In the Form Designer, place a command button on Form1.</li>  In the Refresh method of the command button, enter this line of code: THISFORM.REMOVEOBJECT(This.Name) </li> Save the form definition as TEST, and close the Form Designer.</li>  In the Command window, issue this command: DO FORM TEST </li></ol>

Additional query words: 3.00 VFoxWin fixlist3.00b buglist3.00

Keywords: kbbug kbfix KB134977

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.