How to Use Macro Substitution in Object Referencing (133452)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 3.0

This article was previously published under Q133452

SUMMARY

Macro substitution treats the contents of a memory variable or array element as a character string literal. When an ampersand (&) precedes a Character-type memory variable or array element, the contents of the variable or element replace the macro reference. You can use macro substitution in any command or function that accepts a character string literal.

MORE INFORMATION

In the Language Reference, page 8, the (&) Ampersand command is explained. One area of amplification to the Macro Substitution command is the .cExpression, which allows for a continuation of the command.

Here is an example showing how objects can be referenced using macro substitution:
  frmForm = CREATEOBJECT("Form")
   frmForm.SHOW
   X="frmForm"
   cMemvarIs="Visible"
   &X.&cMemvarIs =.F. && Nothing happens due to improper syntax
   &X..&cMemvarIs=.F. && The form should disappear
   WAIT WINDOW "Form should have disappeared."
   madd="AddObject"
   &X..Visible=.T. && The form should reappear
   &X..&madd("cmdMyButton2","cmdMyButton")
   myb="cmdMyButton2"
   &X..&myb..&mvis=.t.
   READ EVENTS

   DEFINE CLASS cmdMyButton AS CommandButton
      PROCEDURE Click
      ThisForm.RELEASE
      CLEAR EVENTS
      ENDPROC
   ENDDEFINE
				

Modification Type:MajorLast Reviewed:2/15/2000
Keywords:KB133452