Differences between FoxPro and Visual FoxPro (129976)



The information in this article applies to:

  • Microsoft Visual FoxPro for Windows 3.0
  • Microsoft Visual FoxPro for Macintosh 3.0b
  • Microsoft Visual FoxPro for Windows 5.0
  • Microsoft Visual FoxPro for Windows 6.0

This article was previously published under Q129976

SUMMARY

FoxPro Programmers moving to Microsoft Visual FoxPro from earlier versions of Microsoft FoxPro will find that many things have changed dramatically, including terminology, the programming tools, and even the programming style.

This article is a comprehensive reference that lists the differences between Visual FoxPro and earlier versions of FoxPro to help make the transition easier.

This article discusses major changes in Visual FoxPro in the following areas:
  Terminology              Interface      Tools
  Language                 Keystrokes     Screens
  Tables and Databases     Menus          Reports and Labels
				
Most of this information is also available in separate, smaller Help topics in the Visual FoxPro Help file.

MORE INFORMATION

Terminology differences

Visual FoxPro redefines some FoxPro version 2.6 terms. For more information on new terms, please see the Glossary in the Visual FoxPro Help file.
FoxPro Version 2.6 Term   Visual FoxPro Term
---------------------------------------------
@ ... GET field           text box control

Blanks or empty           Null values
fields or variables

Browse (in a Form)        Grid control

Buffer                    Record and table buffers and transactions.
                          (See "Buffering Access to Data" and "Using
                          Transactions" in the Visual FoxPro Help file.)

Code snippets             Properties, methods, and event code.
                          (See "Setting Properties at Design Time" and
                          "Assigning Method and Event Code" in the Visual
                          FoxPro Help file.)

Control                   Control

Database                  Database

Edit region               EditBox control

Long names                Long names.
                          (See "Visual FoxPro Naming Rules" in the Visual
                          FoxPro Help file.)

Object                    Object

Popup                     ComboBox control

Power tools               Visual designers and toolboxs.
                          (See "Using Designers" and "Using Toolbars" in
                          the Visual FoxPro Help file.)

PushButton                CommandButton control

Radio button              OptionButton control

Screen                    Form

Screen picture            Image control

Screen set                Form set

Table                     Table

Text                      Label control
				

Language Differences

Although Visual FoxPro includes new commands as well as FoxPro version 2.6 commands for backward compatibility, many FoxPro version 2.6 commands and functions have enhanced or modified functionality in Visual FoxPro.

Visual FoxPro allows long names for windows, objects, tables, and variables. You can use up to 254 characters, except for field names in free tables and index tags. (For details, please see "Visual FoxPro Naming Rules" in the Visual FoxPro Help file.)
FoxPro 2.6 clause, command,       Visual FoxPro command, function,
function, or feature              property, event, or method
---------------------------------------------------------------------
@ ... SAY                         Left Property, Top property

@ ... SAY PICTURE                 Image, OLE Bound

BORDER                            BorderStyle property

MOVE WINDOW CENTER                AutoCenter property

Color                             ColorSourceForeColor, BackColor property

Color scheme                      ForeColor property, BackColor property,
                                  ColorScheme property

Date data type                    Date Data Type and Date Time Type

DBCONNECT                         SQLCONNECT( ) Function

DBEXEC                            SQLEXEC( ) Function

DEACTIVATE MENU,                  Deactivate Event
DEACTIVATE POPUP,
DEACTIVATE WINDOW

@ ... GET DEFAULT                 Default property

DEFINE WINDOW CLOSE               Closable property

DEFINE WINDOW FLOAT               Movable property

DEFINE WINDOW HALFHEIGHT          HalfHeightCaption property

DEFINE WINDOW ICON FILE           Icon property

EMPTY( ), BLANK( ) to check       ISNULL( ) to check for null values
for non-existent data             representing unknown or non-existent data

Enable, Disable                   Enabled property

Font (Text Menu)                  FontName property

Font size (Font dialog)           FontSize property

Font style bold (Font dialog)     FontBold property

Font style italic (Font dialog)   FontItalic property

@ ... SAY FUNCTION,               Format property
any @ ... GET FUNCTION

Height                            Height property

Horizontal position               Left property
(Screen Layout dialog)

@ ... GET MESSAGE cMessageText    StatusBarText property

MODIFY SCREEN                     MODIFY FORM command

MODIFY STRUCTURE                  TABLE Designer

Numeric data type                 Numeric data type plus Float field type,
                                  Integer field type, Double field type,
                                  and Currency data type

Picture                           InputMask property

READ ACTIVATE                     ReadActivate event

READ CYCLE                        ReadCycle property

READ DEACTIVATE                   ReadDeactivate event

READ LOCK                         ReadLock property

READ NOMOUSE                      ReadMouse property

READ SAVE                         ReadSave property

READ SHOW                         ReadShow event

READ TIMEOUT                      ReadTimeout property

READ VALID                        ReadValid event

READ WHEN                         ReadWhen event

Screen Name                       Name

SET NOCPTRANS                     (See "Preventing Translation of Data in
                                  Character or Memo Fields" in the Visual
                                  FoxPro Help file)

SHOW GET, SHOW GETS               Refresh method

Size (Screen Layout dialog)       Height, Width properties

Style (Font dialog)               FontBold, FontItalic, FontUnderline
                                  properties, FontShadow property,
                                  FontOutline property, FontStrikeThru
                                  property

Terminate on selection            TerminateRead property
(Screen Builder)

Title (Screen Builder)            Caption property

Valid (Screen Builder)            Click event, DblClick event, LostFocus
                                  event, Valid event

Valid Error                       ErrorMessage

Vertical position                 Top property
(Screen Layout dialog)

When (Screen Builder)             GotFocus event, When event

Width (Screen Builder)            Width property
				

Table and database differences

Visual FoxPro distinguishes between tables and databases. Although FoxPro version 2.6 tables are fully functional in Visual FoxPro, if you modify the table structure of FoxPro tables, they are saved as Visual FoxPro tables.
FoxPro 2.6 feature                Visual FoxPro feature
or functionality                  or functionality
----------------------------------------------------------------------
Character field with NOCPTRANS    Character (BINARY) field type.
characteristic                    (See "Data and Field Types"
                                  in the Visual FoxPro Help file.)

General field size                Now 4 bytes. (See "General Field Type" in
                                  the Visual FoxPro Help file.)

Memo field size                   Now 4 bytes. (See "Memo Field Type" in
                                  the Visual FoxPro Help file.)

Memo field with NOCPTRANS         Memo (BINARY) field type. (See "Data and
characteristic                    Field Types" in the Visual FoxPro Help
                                  file.)

Numeric fields                    Currency data type, Double field type,
                                  Float field type, Integer field type, or
                                  Numeric data type.

OLE data in a General field       OLE Bound Control.
				
Visual FoxPro tables can accept null values. To prevent errors generated by attempts to store null values to FoxPro version 2.6 variables or to Visual FoxPro controls, initialize variables or arrays. To prevent users from attempting to store null values to tables, you can disable the NULL-entry key combination by using this statement:

   ON KEY LABEL CTRL+0 *
						

The structures of Visual FoxPro screen (.SCX), report (.FRX), and label (.LBX) files differ from the structures of FoxPro 2.6 files. For details on the structure of Visual FoxPro table files created in the Form, Report, and Label Designers, please see "Table Structures of Table Files" in the Visual FoxPro Help file. For details on changes made to converted and saved record files, please see "Checking Converted FoxPro 2.6 Reports and Labels" in the Visual FoxPro Help file.

Interface differences

In addition to the changes in the Visual FoxPro interface, such as keystroke, menu, and tool differences, you might want to know about changes to screens, reports, and labels for your own application interfaces.

Keystroke differences

Visual FoxPro redefines some FoxPro version 2.6 navigation key combinations.
FoxPro 2.6 Key    Visual FoxPro Key     Definition or
Combination       Combination           Difference
----------------------------------------------------------------------
                  Ctrl + N              Create a new file
Ctrl + N          Ctrl + Y              Add a record to a Browse window
Ctrl + O          Ctrl + E              DO program in edit window
				
You can insert null values into null-enabled fields by pressing CTRL+0. If you don't want your users to store null values to variables, disable this key combination with the following command:

  ON KEY LABEL Ctrl+0 *
						

In Visual FoxPro, you press the TAB key to navigate between controls, so you cannot tab through options in a list box. Use the arrow keys instead.

Menu differences

Visual FoxPro displays only menus with active options. Some menu items have moved to different locations in Visual FoxPro. For more information on Visual FoxPro menus, please see "System Menu Names" in the Visual FoxPro Help file.
FoxPro 2.6 menu command          Visual FoxPro menu command
-------------------------------------------------------------------
1 1/2 Space (Text Menu)          1 1/2 Space (Format Menu)

Append (Record Menu)             Append Records (Table Menu)

Append From (Database Menu)      Import (File Menu)

Beautify (Program Menu)          Documenting Wizard (Tools Menu)
                                 professional Edition only

FoxDoc (Program Menu)            Documenting Wizard (Tools Menu)
                                 Professional Edition only

Browse (Record Menu)             Browse (View Menu)

Change Links  (Edit Menu)        Links (Edit Menu)

Copy To (Database Menu)          Export (File Menu)

Debug (Program Menu)             Debug Window (Tools Menu)

Delete (Record Menu)             Delete Records (Table Menu)

Double Space (Text Menu)         Double Space (Format Menu)

Enlarge (Text Menu)              Enlarge (Format Menu)

Find Again (Edit Menu)           Find (Edit Menu)
Replace and Find                 Replace (Edit Menu)
Again (Edit Menu),
Replace All (Edit Menu)

Font (Text Menu)                 Font (Format Menu)

Generate (Program Menu)          Visual FoxPro generates only menus.

Goto (Record Menu)               Go To Record (Table Menu)

Indent (Text Menu)               Indent (Format Menu)

Label  (Database Menu)           Print (File Menu)

Locate (Record Menu)             Locate Record (Table Menu)

Macros (Program Menu)            Macros (Tools Menu)

Pack (Database Menu)             Remove Deleted Records (Database Menu)

Printer Setup (File Menu)        Page Setup (File Menu)

Recall (Record Menu)             Recall Records (Table Menu)

Reduce (Text Menu)               Reduce (Format Menu)

Reindex (Database Menu)          Rebuild Indexes (Table Menu)
                                 Rebuild Indexes (Database Menu)

Replace (Record Menu)            Replace Records (Table Menu)

Report (Database Menu)           Print (File Menu)
Label (Database Menu)

Single Space (Text Menu)         Single Space (Format Menu)

Spelling (Text Menu)             Spelling (Tools Menu)

Trace (Program Menu)             Trace Window (Tools Menu)

Undent (Text Menu)               Remove Indent (Format Menu)
				

Tool differences

Some FoxPro 2.6 tools have new names and functionality in Visual FoxPro. For more information on Visual FoxPro designers, please see "Using Designers" in the Visual FoxPro Help file.
FoxPro 2.6 tool          Visual FoxPro tool
-----------------------------------------------
Catalog Manager          Project Manager

Project Manager          Project Manager

Screen Builder           Form Designer

Align (Object menu)      Layout toolbox

Screen Builder Toolbox   Form Controls toolbox

Control dialogs and      Properties window
screen layout dialogs

Menu Builder             Menu Designer

RQBE                     Query Designer

Report Writer            Report Designer

Label Designer           Label Designer

View window options      Tools Menu items

Transporter              Conversion Options dialog box

Browse window            Grid Control
				

Screen differences

You can run unconverted FoxPro version 2.6 screen (.SPR) files in Visual FoxPro. Visual FoxPro forms use code in events and methods and property settings instead of code snippets.
                                  Visual FoxPro property,
FoxPro 2.6 screen feature         method, or event
------------------------------    ---------------------------------
#DEFINE, #INSERT preprocessor     Global include file called by new
statements                        .SPR file. (See "Checking the .SPR File"
                                  in the Visual FoxPro Help file.)

#Section 1 Setup code             Form set Load event

#Section 2 Setup code             Form Load event

Cleanup code except procedures    Unload event

Code snippets                     Method and event code and properties

Constants                         Resolved only in method and event code
                                  (See "Checking the .SPR File" in the
                                  Visual FoxPro Help file.)

Macro substitutions               Unresolved in properties. Use variables
                                  instead (See "Checking Converted FoxPro
                                  2.6 Screens" in the Visual FoxPro Help
                                  file.)

READ                              WindowType property
				
For more details on changing screen code in forms, see "Language Differences" or "Checking Code After Conversion" in the Visual FoxPro Help file.

Report and label differences

You can use unconverted FoxPro version 2.6 reports and labels in Visual FoxPro but Visual FoxPro reports and labels enable you to set and control the data environment and to control report content through report variables.
FoxPro 2.6 report                  Visual FoxPro report
or label feature                   or label feature
------------------------------------------------------------------------
Controls generated with the        Might need adjustment in Visual FoxPro
Report Wizard using "Position
Relative To" options

Memo field size                    Now 4 bytes. (See "Memo field type" in
                                   the Visual FoxPro Help file)

REPORT TO FILE                     REPORT TO FILE ASCII creates simple
                                   text file

REPORT ENVIRONMENTLABEL            Data Environment (View Menu)
ENVIRONMENT                        (See "Setting Report and Data Sources"
                                   and "Controlling a Report's Data
                                   Sources" in the Visual FoxPro Help file)
				
For more information on Visual FoxPro reports and labels, please see the "Report Designer" topic in the Visual FoxPro Help file.

Modification Type:MajorLast Reviewed:1/24/2005
Keywords:kbinfo kbinterop KB129976 kbAudDeveloper