Recommended Naming Conventions for Visual FoxPro

Last reviewed: April 30, 1996
Article ID: Q129977
The information in this article applies to:
  • Microsoft Visual FoxPro for Windows, version 3.0

SUMMARY

For consistency, readability, and making troubleshooting a little easier, standard naming conventions should be used in programming. Some naming conventions are required for sample code. This article gives the recommended standard naming conventions for constants, variables, objects, tables, and windows in Visual FoxPro. This information is available in Help by typing the following in the Command Window:

   HELP naming conventions

MORE INFORMATION

Constant Naming Conventions

Syntax:   NAME
Example: #DEFINE MAX_VALUE 10

Render constants in all uppercase letters.

Variable Naming Conventions

Syntax:    [Scope]TypeName

The Scope prefix is recommended but not required. In some cases, explicit scoping does not apply. For example, in the main program of a stand-alone application, there is no difference in visibility for variables scoped as PUBLIC or PRIVATE. Scope specifies the range of reference for the variable. For example, local variables can be referenced only within the procedure that defines them. Public variables are accessible from anywhere in the application. The choices for Scope are:

   Scope  Description          Example
   ---------------------------------------
   l      Local                lnCounter
   p      Private (default)    pnStatus
   g      Public (global)      gnOldRecno
   t      Parameter            tnRecNo

The Type prefix is always relevant and is required in sample programs. Type specifies the data type for the variable. The choices for Type are:

   Type   Description    Example
   -----------------------------------
   a      Array          aMonths
   c      Character      cLastName
   y      Currency       yCurrentValue
   d      Date           dBirthDay
   t      Datetime       tLastModified
   b      Double         bValue
   f      Float          fInterest
   l      Logical        lFlag
   n      Numeric        nCounter
   o      Object         oEmployee
   u      Unknown        uReturnValue

Object Naming Conventions

Syntax: PrefixName

Follow this suggested format for naming objects. The choices for Prefix are:

   Prefix           Object           Example
   ---------------------------------------------------
   chk              check box        chkReadOnly
   cbo              ComboBox         cboEnglish
   cmd              CommandButton    cmdCancel
   cmg              CommandGroup     cmgChoices
   cnt              Container        cntMoverList
   ctl              Control          ctlFileList
   <user-defined>   Custom           user-defined
   edt              EditBox          edtTextArea
   frm              Form             frmFileOpen
   frs              FormSet          frsDataEntry
   grd              Grid             grdPrices
   grc              Column           grcCurrentPrice
   grh              Header           grhTotalInventory
   img              Image            imgIcon
   lbl              Label            lblHelpMessage
   lin              Line             linVertical
   lst              list box          lstPolicyCodes
   olb              OLEBoundControl  olbObject1
   ole              OLE              oleObject1
   opt              OptionButton     optFrench
   opg              OptionGroup      opgType
   pag              Page             pagDataUpdate
   pgf              PageFrame        pgfLeft
   sep              Separator        sepToolSection1
   shp              Shape            shpCircle
   spn              Spinner          spnValues
   txt              text box          txtGetText
   tmr              Timer            tmrAlarm
   tbr              ToolBar          tbrEditReport

Table Field Naming Conventions

Syntax:     Alias.TypeName
Arguments: Type

Follow this suggested format for naming fields in tables. These conventions are recommended, not required. Type specifies the data type for a field in a table. The choices for Type are:

   Type  Description    Example
   -------------------------------------
   c     Character    Customer.cLastName
   d     Date         Customer.dBirthDay
   t     Datetime     Customer.tLastMod
   b     Double       Customer.bRate
   f     Float        Customer.fValue
   g     General      Customer.gPicture
   l     Logical      Customer.lSellMail
   m     Memo         Customer.mComments
   y     Currency     Customer.yYearTDate
   n     Numeric      Customer.nItems
   i     Integer      Customer.iCustID

Window Naming Conventions

Syntax:   wName
Example: DEFINE WINDOW wCustomerInvoices ;
              FROM nFirstRow, nFirstColumn TO nLastRow, nLastColumn

Follow this suggested format for naming windows. Do not use a prefix on class definitions. Use prefixes only when the object is instantiated.


Additional reference words: 3.00 VFoxWin
KBCategory: kbref kbprg
KBSubcategory: FxprgGeneral


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: April 30, 1996
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.