KnowledgeBase Archive

An Archive of Early Microsoft KnowledgeBase Articles

View on GitHub

Q129976: INFO: Differences Between FoxPro and Visual FoxPro

Article: Q129976
Product(s): Microsoft FoxPro
Version(s): 
Operating System(s): 
Keyword(s): kbinterop kbvfp300 kbvfp500 kbvfp600
Last Modified: 30-JUL-1999

-------------------------------------------------------------------------------
The information in this article applies to:

- Microsoft Visual FoxPro for Windows, versions 3.0, 5.0, 6.0 
- Microsoft Visual FoxPro for Macintosh, version 3.0b 
-------------------------------------------------------------------------------

SUMMARY
=======

FoxPro Programmers moving to Visual FoxPro from earlier versions of 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.

Additional query words:

======================================================================
Keywords          : kbinterop kbvfp300 kbvfp500 kbvfp600 
Technology        : kbHWMAC kbOSMAC kbVFPsearch kbAudDeveloper kbVFP300bMac kbVFP300 kbVFP500 kbVFP600
Issue type        : kbinfo

=============================================================================

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.

Copyright Microsoft Corporation 1986-2002.