Microsoft KB Archive/130834

= Objects Parameters Are Passed by Reference =

Article ID: 130834

Article Last Modified on 2/15/2000

-

APPLIES TO


 * Microsoft Visual FoxPro 3.0 Standard Edition

-



This article was previously published under Q130834



SUMMARY
By default, parameters are passed by value to user-defined functions and by reference to procedures called with a DO command. This article explains how an Object-type variable is passed as a parameter.



MORE INFORMATION
Object variables are always passed by reference to user-defined functions and procedures. Creating an object creates a reference to an object of a class. When a procedure or a method receives an object as a parameter, any change made to the parameter affects the object. Only one instance of the object actually exists; the parameter points to the same object as the instance variable.

To pass an Object reference from a form, you can use this syntax: Thisform.mymethod(this)

-or-

Thisform.mymethod In the following example code, a form is created, and the ChangeCaption method of the form is called. Controls are passed as parameters. This example could have been programmed differently by making the ChangeCaption a method of any control. It is included to illustrate how object type variables are passed as parameters.

Sample code
PUBLIC oForm oForm=CREATEOBJECT('Myform') oForm.show =MESSAGEBOX('Note the Caption of the CommandButton') oForm.ChangeCaption(oform.mycmd) =MESSAGEBOX('Note the Caption of the CommandButton')

DEFINE CLASS myform as FORM

ADD OBJECT mycmd as COMMANDBUTTON with Caption = "Before" ADD OBJECT cmdquit1 as cmdquit

PROCEDURE ChangeCaption PARAMETER objref objref.Caption="After" ENDPROC

ENDDEFINE

DEFINE CLASS cmdquit as COMMANDBUTTON Caption= "Quit" Top=25 Left=25 PROCEDURE Click RELEASE Thisform ENDPROC ENDDEFINE

Additional query words: VFoxWin

Keywords: kbcode KB130834

-

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

© Microsoft Corporation. All rights reserved.