PRB: RELEASE Command Does Not Release a Form

ID: Q127848


The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0


SYMPTOMS

Issuing the RELEASE command to release an instance variable does not release the object referenced by the variable. If the variable holds a reference to a form that is displayed, the form is not closed.


CAUSE

Another reference to the object exists. An object is released from memory when all of the references to this object have been released.


RESOLUTION

You can use the AINSTANCE() function to verify that all the references to an object have been released. AINSTANCE() builds an array of object references.

A reference to the specified object still exists if the length of the array is greater than 0. Another alternative is to maintain a table or an array that updates the reference count to an object.


STATUS

This behavior is by design.


MORE INFORMATION

Steps to Reproduce Behavior

Following are two examples that create a reference to a form.

Example One

  1. Create a form, and save it as TEST.


  2. From the Command window, type:
    
        DO FORM TEST NAME ofrmTest1 LINKED &&Displays a form
       ofrmTest2=ofrmTest1       &&Creates a reference to ofrmTest1
       * The following command releases the variable ofrmTest1. However, the
       * form is not released because a reference exists.
       RELEASE ofrmtest1
       RELEASE ofrmtest2  && Releases the Form 


Example Two

  1. Copy and paste the following sample code into a PRG
    
       OFORM1=CREATE('testclass')
       OFORM2=OFORM1   &&Creates a reference to OFORM1
       OFORM2.SHOW     && Displays the Form
    
       nobject= AINSTANCE(atest1,'testclass')
       DISPLAY MEMORY LIKE atest1 && Two references to the object exist
    
       RELEASE OFORM2          && Form not released
       WAIT WINDOW "After OFORM2 has been released"
    
       RELEASE oForm1          && Form is released.
       WAIT WINDOW "After OFORM1 has been released"
    
       DEFINE CLASS TESTCLASS AS FORM
          Caption="Hello"
       ENDDEFINE 


  2. Execute the PRG.


Additional query words: VFoxWin close

Keywords : FxprgClassoop
Version : 3.00
Platform : WINDOWS
Issue type :


Last Reviewed: August 25, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.