Knowledge Base

PRB: Method Code Not Returned Using Object Reference with GETPEM

Article ID: 195694

Article Last Modified on 12/10/1999


APPLIES TO


This article was previously published under Q195694

SYMPTOMS

The GETPEM() function can be used to return the property values and event or method program code for a given object at design-time. Although not documented as being supported at run-time, this function does return property values and event or method code at run-time.

However, when passing an object reference as the first parameter to the GETPEM() function, an empty string is returned when querying for event or method program code at run-time.

RESOLUTION

In order to retrieve the event or method code at run-time using the GETPEM() function, the first parameter must specify the class name rather than a reference to the object. If the class name is not known, the object's Class property can be passed as follows:
   GETPEM(oObject.Class, "Init")
				

STATUS

This behavior is by design.

MORE INFORMATION

In this context, run-time refers to a compiled Visual FoxPro executable running with VFP6R.DLL, and design-time means running in the Interactive Development Environment (IDE) using VFP6.exe.

Steps to Reproduce Behavior

Run the following code:
   oObject = NEWOBJECT("_form",HOME()+"ffc\_base.vcx")
   cMethodCode = GETPEM(oObject,"Release") && Object Ref = Empty String
   ?LEN(cMethodCode)  && Zero
				
Note that zero is returned. If the first parameter passed to the GETPEM() function is changed to oObject.Class, a value greater than zero is returned.

Keywords: kboop kbprb kbpending KB195694