## Visual FoxPro Readme

© 1998 Microsoft Corporation. All rights reserved.

Other product and company names herein may be the trademarks of their respective owners.

Visual FoxPro® Readme includes updated information for the documentation provided with Microsoft® Visual Studio™ -- Development System for Windows® and the Internet. The information in this document is more up-to-date than the information in the help system. Many of the issues outlined in this document will be corrected in upcoming releases.

### Contents - Click any of the items below

> Note Be sure all headings in the table of contents below are expanded when you search this Readme for a topic. This way you'll know when the search finds the topic among the table of contents headings.

Visual Studio 6.0 General Installation Notes

> For general installation issues on the Visual Studio 6.0 suite of products, including side by side product installation, see the Installation Notes readme (install.htm).

> ##### For other issues on the Help system of the Visual Studio suite of products, go to:

> MSDNä, the Microsoft Developer Network Readme.

##### Visual FoxPro 6.0 Installation Notes

> Installing Samples

> Installing Online Documentation

> New Visual FoxPro and SQL Server ODBC Drivers

> Updates for Visual FoxPro Components

> Using Visual FoxPro 5.0 Files in Visual FoxPro 6.0

##### Known Issues

Visual FoxPro Product Issues

> Active Documents

> Changes to Vfp6run.exe, the Visual FoxPro Runtime

> Changes to the Selected and SelectedID Properties

> Component Gallery Display Problems after Dragging an Item

> Component Gallery Output to HTML

> Highlighting and Copying Code Examples from Help

> _SCREEN and the FormCount and Name Properties

> Tasmanian Traders Sample

> URL Combo Foundation Class

Wizard Issues

> Application Wizard Help

> Application Wizard and HTML Output

> Application Wizard - Adding Records to Empty Tables

> Application Wizard - Recompiling New Applications

> Form Wizard and the Maximum Design Area Setting

> Sample Wizard Installation

> SQL Server Upsizing Wizard Help

Documentation Issues

> _BROWSER Help Topic

> Code Analyzer Help

> Corrections to the Guidelines for Using Visual FoxPro Foundation Classes Help Topic

> Duplicate Entries in the Error Messages A-Z Help Topic

> Distributing the Filer with Run-Time Applications

> Foundation Class AddProp Method Syntax Incorrect

> Foundation Class InsAitem Method Syntax Incorrect

> Genhtml.prg Syntax

> HTML Help Sample Project Directory Changed

> HTML Item Dialog Box Description Incomplete

> Reserved Words

> SetData Method Help Topic

##### What's new in Visual FoxPro 6.0

##### Finding More Information

Frequently Asked Questions

### Visual FoxPro 6.0 Installation Notes

#### Installing Samples

The samples for Visual FoxPro 6.0 are now installed with MSDN™, the Microsoft Developer Network. The MSDN setup is located in a separate subfolder called MSDN. Open the folder and double-click Setup.exe to run the MSDN Installation Wizard. Choose the Custom option and select the VFP Samples check box.

The samples are placed in the common MSDN samples location. You can access this location programmatically by using the _SAMPLES system variable or by executing the HOME(2) command.

#### Installing Online Documentation

The online documentation for Visual FoxPro 6.0 is now installed using MSDN setup. The MSDN setup is located in a separate subfolder called MSDN. Open the folder and double-click Setup.exe to run the MSDN Installation Wizard. Choose the Custom option and select the VFP Documentation check box. If you select the Typical option, Visual FoxPro will have to access help files from the MSDN CD instead of your hard disk.

The Visual FoxPro help files (including Foxhelp.chm) are installed at the following location:

drive:\Program Files\Microsoft Visual Studio\Msdn98\98vs\1033

When you ask for help from within Visual FoxPro by pressing F1, typing HELP in the Command window, or by using the help menu, the default behavior is for Visual FoxPro to call Msdnvs98.col if full MSDN is installed. If this file does not exist, then Foxhelp.chm is used by default. If you are experiencing problems using Msdnvs98.col, you can redirect the Visual FoxPro help system to use Foxhelp.chm:

To set help to Foxhelp.chm

- On the Tools menu, click Options.
- Click the File Locations tab.
- Select the Help File file type listed and click Modify.
- While keeping the same path, replace Msdnvs98.col with Foxhelp.chm or use the dialog button to locate Foxhelp.chm.
- Click OK.
- If you want Foxhelp.chm to be your default for future Visual FoxPro sessions, click Set As Default.
- Click OK.

Note If you set help to Foxhelp.chm, you may receive a "Topic Not Found" error when you attempt to jump to topics outside of the Visual FoxPro Foxhelp.chm help file. To jump to topics outside of Foxhelp.chm (for example, Visual Basic and Visual C++ help topics), set the help file to Msdnvs98.col.

#### Updates for Visual FoxPro Components

Updates for Visual FoxPro components and Xbase pieces are often posted to the Microsoft Visual FoxPro web site http://www.microsoft.com/vfoxpro. It is a good idea to check this site for updates, especially after product installation and release of other Microsoft system and core technologies that may affect the product. These updates often address known issues, improve performance, and contain highly requested enhancements.

#### New Visual FoxPro and SQL Server ODBC Drivers

For this release, new Visual FoxPro and SQL Server ODBC drivers (VFPodbc.dll and SQLsrv32.dll) are installed, overwriting your existing ODBC drivers. Before installing this release with the latest version of these drivers, you might first want to make a copy of your existing drivers.

If you don't want your existing drivers replaced by potentially problematic new versions, choose the Custom setup option and uncheck the ODBC Files check box.

#### Using Visual FoxPro 5.0 Files in Visual FoxPro 6.0

Any .fll files (FoxPro link libraries) you create for Visual FoxPro 5.0 will work unchanged in Visual FoxPro 6.0. Because of menu changes in Visual FoxPro 6.0, you may need to recompile your Visual FoxPro 5.0 applications if your source code references system menus. In addition, you may need to recompile code from previous betas of Visual FoxPro 6.0.

Additionally, we have added strict date checking to ensure Year 2000 compliance in your applications. If your applications utilize any ambiguous dates, you may need to disambiguate these dates or SET STRICTDATE to 0 to allow ambiguous (and possibly non-compliant) dates to exist in your applications.

New versions of popular ActiveX controls, such as Treeview and Listview, are included in this release. These controls are now stored in the new Mscomctl.ocx file. Your existing forms will continue to function correctly with the original ActiveX controls that are in Comctl32.ocx. Since both files can reside on your machine, you can choose to install either version of a control.

See the Vfp6FAQ.txt file in the main Vfp98 directory for more details on these and other compatibility issues.

###

Known Issues

Visual FoxPro Product Issues

#### Active Documents

The Vfp6run.exe runtime doesn't release from memory when a Visual FoxPro application with its ContainerReleaseType property set to 1 (Don't show the Visual FoxPro main window) terminates when it falls out of the Internet Explorer cache. Vfp6run.exe doesn't release from memory until Internet Explorer 4.0 is terminated. This is an Internet Explorer 4.0 issue and may be resolved in a future release of Internet Explorer.

#### Changes to Vfp6run.exe, the Visual FoxPro Runtime

Vfp6run.exe, the Visual FoxPro runtime, has been enhanced to make it easier to set security settings for Active Documents. New arguments have been added, allowing you to display the About Microsoft Visual FoxPro Runtime dialog box. The Application Security button in this dialog lets you specify the security settings for Active Documents and other application (.app) files.

In addition to using the /security argument (Vfp6run.exe /security), you can use the new /? or ? arguments, or you can omit the arguments. Note that the Application Security button isn't displayed on the About Microsoft Visual FoxPro Runtime dialog box when the dialog box is displayed from a Visual FoxPro .exe distributable application.

A value of 10 is passed to the CommandTargetExec event when an Active Document is hosted in Microsoft Internet Explorer 4.0 and you choose Properties from the File menu. Return a value of 0 from the CommandTargetExec event to suppress display of the About Microsoft Visual FoxPro Runtime dialog box or to display your own dialog box.

For more information about Vfp6run.exe and Active Documents, see "Active Documents" in Chapter 31, "Interoperability and the Internet" in the Microsoft Visual FoxPro 6.0 Programmer's Guide. The Programmer's Guide is included in the Visual FoxPro online documentation.

#### Changes to the Selected and SelectedId Properties

Programmatically changing the value of the Selected or SelectedId properties in Visual FoxPro 6.0 now causes the ProgrammaticChange event to occur. In previous versions of Visual FoxPro, the ProgrammaticChange event did not occur when the value of the Selected or SelectedId properties were programmatically changed.

#### Component Gallery Display Problems after Dragging an Item

If you drag an item in the right pane of the Component Gallery, the folder in the left pane containing the item you drag may stay selected even after you select a different folder in the left pane. This is a known issue with the ActiveX control the Component Gallery uses, and may be corrected in an upcoming release. The ActiveX control will work as expected even if the incorrect folder appears selected in the left pane.

#### Component Gallery Output to HTML

If you add a table to the Component Gallery, right-click the table, and then choose Output to HTML, no HTML output is created. To create HTML output for a table, open a Browse window for the table (with the BROWSE command or by choosing Browse from the View menu), and then choose Save As HTML from the File menu.

You can also fix this problem with the following steps:

1. Enter the following command in the Command Window:

MODIFY CLASS _dataitem OF (HOME( ) + "gallery\vfpglry.vcx") METHOD makehtml

2. Change the following line of code in the method:

DO (_GENHTML) WITH "", ALIAS( ), 5

to this:

DO (_GENHTML) WITH "", ALIAS( ), 2

3. Save and close the class.

#### Highlighting and Copying Code Examples from Help

Highlighting and copying code examples from online help topics may result in incorrect placement of carriage returns. This may occur if you copy portions of the examples. If you exclude either the first or last line of code in any example, the code example will not be able to run.

To ensure that copied code examples contain proper line formatting, highlight and copy the entire code example, including the first and last line.

#### _SCREEN and the FormCount and Name Properties

At design time in Visual FoxPro 6.0, the FormCount and Name properties return different values for _SCREEN than those in Visual FoxPro 5.0. Visual FoxPro 6.0 doesn't include the designers (the Form Designer, the Report Designer, and so on) in the _SCREEN.Forms collection, so the FormCount property isn't incremented for each Visual FoxPro designer that is open. Because Visual FoxPro 6.0 doesn't include the designers in the _SCREEN.Forms collection, querying the Name property for the _SCREEN.Forms collection can cause an error.

The AMOUSEOBJ( ) function can be used in a work-around to determine the current designer.

#### Tasmanian Traders Sample

The Tasmanian Traders sample generates an error when you create a new customer record in the Order Entry dialog, choose an existing customer, and then choose Save.

To prevent this error, first change the line "#DEFINE DEBUGMODE .T." to "#DEFINE DEBUGMODE .F." in tastrade.h. Tastrade.h is located in the Include directory off of the Tastrade directory. Then rebuild the Tasmanian Traders sample application. To rebuild the sample application, open the Tasmanian Traders project, tastrade.pjx, choose Build, choose Build Application and Recompile All Files, and then choose OK.

#### URL Combo Foundation Class

If you include the URL Combo foundation class in your applications, you should make the following changes to the _URLCombobox class in the _internet.vcx class library to allow longer URLs to be entered in the combo box:

1. Change the DisplayCount property to 32.

2. Change the InputMask property to =REPLICATE('X', 254)

Wizard Issues

#### Application Wizard Help

When you run the new Application Wizard, help is automatically displayed with the Application Builder when a new framework is generated. After you become familiar with the process of building an application using the new framework, you can disable help so that it doesn't automatically appear. Set the lSkipAssist property in the Appbldr.scx form file in the Wizards directory to true (.T.) to prevent help from being automatically displayed.

#### Application Wizard and HTML Output

The framework generated by the Application Wizard automatically provides a variety of output and reporting options when you print reports. If you want your custom application to allow for output as HTML, you will need to include in your project the file Genhtml.prg (located in the main Visual FoxPro directory) and the following files in the FFC directory:

_Html.vcx
_Html.vct
_Html.h
Runcode.prg

You can modify the _Output class in Reports.vcx in the FFC directory to include EXTERNAL commands (for example, EXTERNAL PROCEDURE Genhtml.prg) to have the project automatically include necessary files during builds for future use.

To disable the HTML output option, you can modify the SetDestinations method in the _Output class. To do so, preface the OUTPUT_HTMLFILE_LOC constants at the bottom of the routine with a backwards slash (\) as in the following example:

THIS.aDestinations[liHTMLFile,1] = "\"+OUTPUT_HTMLFILE_LOC + lcSourceAlias

#### Application Wizard - Adding Records to Empty Tables

There is a known issue where applications generated by the Application Wizard do not add new records to empty tables. When you use the Data tab of the Application Builder to add a new database with the Database Wizard button, you can optionally generate a new database with empty tables (using a checkbox on the last step of the Wizard).

If you then choose to generate forms for these empty tables in the Data tab, the Form Wizard generates new forms that don't automatically add records to a table when used in the application framework, such as through the New option on the File menu.

You can fix this problem with the following steps:

1. Enter the following command in the Command Window:

MODIFY CLASS baseform OF (HOME( ) + "wizards\wizbase.vcx") METHOD pickrecord

2. Change the following line of code in the method:

IF GETFLDSTATE(1) # 3

to this:

IF GETFLDSTATE(1) # 3 OR RECCOUNT( )= 0

3. Save and close the class.

#### Application Wizard - Recompiling New Applications

After you create a new application with the Application Wizard, you should recompile the new application. To recompile the new application, open the project created for the new application in the Project Manager and choose Build. In the Build Options dialog box, choose Build Application, choose the Recompile All Files check box, and then choose OK.

If you run your new application without first recompiling it, the error message "File not found - _app" may be generated.

#### Form Wizard and the Maximum Design Area Setting

The Form Wizard generates an error if the Maximum Design Area setting on the Forms tab of the Options dialog box is set to None. To prevent this error, select any of the other Maximum Design Area settings (for example, 800 x 600) and then choose Set As Default.

#### Sample Wizard Installation

The Sample Wizard, described in detail in the Visual FoxPro Help file, isn't installed by default. The files for the Sample Wizard are located in the XSource.zip file in the \Tools\Xsource directory. This directory is located off of the Visual FoxPro home directory.

Note The XSource.zip file in the \Tools\Xsource directory also contains the source code for the Wizards and the Coverage Profiler.

#### SQL Server Upsizing Wizard Help

In the online documentation, the description of Null Mapping in the SQL Server Upsizing Wizard: Step 8 – Set Upsizing Options help topic is incomplete. The following paragraphs should be added to the Null Mapping section in this topic.

The SQL Server Upsizing Wizard contains a new option in Step 8 called Null Mapping. The Null Mapping option helps to ensure that insert and update commands against remote data will succeed. This option allows you to override the existing null setting fields in your Visual FoxPro tables being upsized. If you choose the General and Memo fields option, then all general and memo fields in your selected Visual FoxPro tables will be upsized with these fields set to allow nulls.

There are differences in how Visual FoxPro SQL commands such as INSERT and UPDATE affect local and remote data depending on the null settings for fields. For example, if you have an INSERT command that does not include all the fields in a table, Visual FoxPro inserts blanks into the unspecified fields for local data. If the INSERT command is issued for a remote view (SQL Server data), then nulls are inserted into the fields not specified in the command. The command will fail if any one of these fields do not support nulls. It's fairly easy to write an INSERT command which includes all the fields and values to be inserted. Note, however, that inserting content into a general field is a little more cumbersome.

Documentation Issues

#### _BROWSER Help Topic

In the online documentation, the next to last paragraph in the _BROWSER help topic describes how you can run the class browser for a specific visual class library or an object reference, and optionally include the name of a class that is initially selected. The example code that follows this paragraph contains the wrong path to Buttons.vcx. The example code should be replaced with the following:

DO (_BROWSER) WITH HOME(2) + 'CLASSES\BUTTONS.VCX', 'VCR'

#### Code Analyzer Help

Pressing F1 to display help in the Code Analyzer doesn't display the help topics for the Code Analyzer Symbols or Hierarchies tabs. To display the help topics for these tabs, choose the Index tab in HTML Help, type Code Analyzer in the keyword text box, and press Enter. Choose the help topic for the appropriate tab.

#### Corrections to the Guidelines for Using Visual FoxPro Foundation Classes Help Topic

In the online documentation, the Guidelines for Using Visual FoxPro Foundation Classes help topic is missing text in the note in the Non-Visual Foundation Classes section. The Note should read "This example assumes that the code can locate the _utilities.vcx class library or can be run from an .app file that is built containing _utilities.vcx."

Also, quotation marks are missing from two sample code examples in this topic. In the Non-Visual Foundation Classes section, replace the following code:

LOCAL oFileVersion
oFileVersion = NewObject(_fileversion, _utilities.vcx)
WITH oFileVersion
.cFileName = HOME( )+ 'VFP6.EXE'
.GetVersion( )
.DisplayVersion( )
ENDWITH

with the following code:

LOCAL oFileVersion
oFileVersion = NewObject('_fileversion', '_utilities.vcx')
WITH oFileVersion
.cFileName = HOME( )+ 'VFP6.EXE'
.GetVersion( )
.DisplayVersion( )
ENDWITH

In the Visual Foundation Classes section, replace the following code:

LOCAL oAbout
oAbout = NewObject(_aboutbox, _dialogs.vcx)
oAbout.Show( )

with the following code:

LOCAL oAbout
oAbout = NewObject('_aboutbox', '_dialogs.vcx')
oAbout.Show( )

#### Duplicate Entries in the Error Messages A-Z Help Topic

In the online documentation, the table of error messages that start with the letter "V" contains duplicate entries in the Error Messages A-Z help topic. However, clicking any of these error message links will display the proper error message topic.

#### Distributing the Filer with Run-Time Applications

The Filer.dll Help topic states that Filer.dll and its companion files are for use with Visual FoxPro only, and you are not permitted to distribute any of these files with your distributed run-time applications. This is incorrect. You can distribute Filer.dll and its companion files (Filer.ico, Filer.scx, and Filer.sct) with your distributed Visual FoxPro 6.0 run-time applications. Filer.dll and its companion files are located in the Filer directory off of the Tools directory. Note that these files are unsupported - technical support is not available for problems encountered when using these files.

Redist.txt, located in the Visual FoxPro home directory, contains a list of files you can distribute with your run-time applications. Filer.dll, Filer.ico, Filer.scx, and Filer.sct should be added to Redist.txt.

#### Foundation Class AddProp Method Syntax Incorrect

The syntax for the AddProp method in the Visual FoxPro 6.0 _webbrowser4 Web Browser Control foundation class is incorrect. The following is the proper syntax with a description of each parameter:

Syntax

AddProp(oObject, cProperty, tuValue)

Arguments

cProperty specifies the object to which the property is added.

sContents specifies the name of the property.

tuValue specifies the value to assign to the property.

See the Web Browser Control online help topic for more information about the _webbrowser4 Web Browser Control foundation class and the AddProp method.

#### Foundation Class InsAitem Method Syntax Incorrect

The syntax for the InsAitem method in the Visual FoxPro 6.0 _arraylib Array Handler foundation class is missing an optional fourth parameter. The following is the proper syntax with a description of each parameter:

Syntax

InsAitem(@aArray, sContents, iRow [, lAllElements])

Arguments

aArray specifies the name of the array being processed.

sContents specifies a string value to be added to aArray.

iRow specifies the row in which to insert the value in sContents.

lAllElements, if true (.T.), sets all elements in iRow to sContents.

See the Array Handler online help topic for more information about the _arraylib Array Handler foundation class and the InsAitem method.

#### Genhtml.prg Syntax

In the online documentation, the order of the parameters you can pass to Genhtml.prg are incorrect in the Genhtml.prg help topic. The following is the correct syntax:

DO (_GENHTML) WITH <cOutFile> <cSourceFile> [, <nShow>] [, <vIELink>] [,…

#### HTML Help Sample Project Directory Changed

In the Visual FoxPro online documentation, Chapter 32 in the Programmer's Guide states that a sample HTML Help project is included in the directory ...\Samples\Vfp98\Solution\Help. This directory doesn't exist.

The HTML Help project and its files are in a .zip file, Solnhlp.zip, located in the Tools\XSource directory in the directory in which Visual FoxPro 6.0 is installed.

#### HTML Item Dialog Box Description Incomplete

In the online documentation, the HTML Item dialog box description (the first line in the topic) is incomplete. The first line should read "Enables you to specify additional items and their attributes for the Web page you create."

#### Reserved Words

Many of the Visual FoxPro reserved words are not included in the Reserved Words online help topic. The following table lists the additional reserved words that should appear in the Reserved Words help topic.

Reserved Words
( | + | =>
ADDBS | AGETCLASS | AGETFILEVERSION
ALINES | AMOUSEOBJ | ANETRESOURCES
AVCXCLASSES | BARCOUNT | BARPROMPT
BOF | COMARRAY | COMCLASSINFO
COMRETURNERROR | CREATEBINARY | CREATEOBJECTEX
CTOBIN | CURSORGETPROP | CURSORSETPROP
DBGETPROP | DBSETPROP | DEFAULTEXT
DRIVETYPE | FILETOSTR | FLDCOUNT
FONTMETRIC | FORCEEXT | FORCEPATH
FSEEK | FTIME | GETHOST
GETPEM | HOME | INDEXSEEK
ISBLANK | ISHOSTED | ISMOUSE
JUSTDRIVE | JUSTEXT | JUSTFNAME
JUSTPATH | JUSTSTEM | LIKEC
MRKPAD | PADPROMPT | PCOUNT
PEMSTATUS | SQLCANCEL | SQLCOLUMNS
SQLCONNECT | SQLDISCONNECT | SQLEXEC
SQLGETPROP | SQLMORERESULTS | SQLPREPARE
SQLSETPROP | SQLSTRINGCONNECT | SQLTABLES
STRTOFILE | TAGCOUNT | TAGNO
VARTYPE | WINDOW |

#### SetData Method Help Topic

In the online documentation, the Remarks section of the SetData Method help topic states that the SetData method can only be executed in the OLEStartDrag event. This is incorrect -- the SetData method can be executed in the OLEStartDrag event and the OLESetData event.

### What's New in Visual FoxPro 6.0

To find out about the features that are new to Visual FoxPro 6.0, see the "What's New in Visual FoxPro 6.0" topic in the Visual FoxPro online documentation.

### Finding More Information

#### Frequently Asked Questions

Included with Visual FoxPro is a file called Vfp6FAQ.txt which contains answers to questions often asked about Visual FoxPro. Vfp6FAQ.txt is installed in the main Vfp98 directory.