Logo

Hacker’s Guide to Visual FoxPro
An irreverent look at how Visual FoxPro really works. Tells you the inside scoop on every command, function, property, event and method of Visual FoxPro.

Project

This is one of the Automation objects, exposed in VFP 6, that give us programmatic access to projects and their contents. Every time a project opens, a corresponding project object is created. The Projects collection is composed of Project objects. (Doesn’t that have a nice ring to it—“project object”?)

Property

Value

Purpose

AutoIncrement

Logical

Indicates whether the project's version number is incremented every time the project is built.

BuildDateTime

DateTime

Contains the date and time of the most recent build of the project.

Debug

Logical

Indicates whether debugging information is stored with the project.

Encrypted

Logical

Indicates whether compiled source code in the project is encrypted to provide a measure of extra security.

HomeDir

Character

Contains the path to the home directory for the project.

Icon

Character

Contains the file name for the icon used for an EXE built from the project.

MainClass

Character

If an ActiveDoc is the main object for the project, contains the name of the ActiveDoc class.

MainFile

Character

If a form or program is the main object for the project, contains its file name. If an ActiveDoc is the main object, contains the name of the class library containing the ActiveDoc class.

Name

Character

Contains the path and file name for the project.

ProjectHook

Object

If a project hook has been created for the project, contains a reference to it.

ProjectHookClass, ProjectHookLibrary

Character

If the project has a project hook, contain the class name and class library name, respectively.

SCCProvider

Character

Contains the name of the source control provider for the project.

ServerHelpFile

Character

If the project contains server classes, contains the name of a help file for the type library for those classes.

ServerProject

Character

If the project contains server classes, contains the name assigned to the project for Automation purposes. This is used along with the actual class name to instantiate the server classes. By default, this is the same as the project name.

TypeLibCLSID

Character

If the project contains server classes, contains the unique ID created for registering the type library for those classes.

TypeLibDesc

Character

If the project contains server classes, the description for the type library for those classes.

TypeLibName

Character

If the project contains server classes, the name of the type library for those classes.

VersionComments

Character

The comments from the Version dialog.

VersionCompany

Character

The company name from the Version dialog.

VersionCopyright

Character

The legal copyright information from the Version dialog.

VersionDescription

Character

The file description from the Version dialog.

VersionLanguage

Numeric

The language ID from the Version dialog.

VersionNumber

Character

The three-part version number from the Version dialog.

VersionProduct

Character

The product name from the Version dialog.

VersionTrademarks

Character

The legal trademarks from the Version dialog.

Method

Purpose

Build

Rebuilds the project or builds the project into an APP, EXE, or DLL.

CleanUp

Packs a project file, optionally stripping the object code.

Close

Closes the project.

Refresh

Updates the visual display of the project and can update the source control status.

SetMain

Sets a file or class as the main object for the project.

Most of the property values for a project can be found somewhere in the Project Manager, though some are pretty well hidden. A lot of the information, including server information, is in the Project Info dialog. You get to the various VersionWhatever properties by pressing the Version button in the Build dialog. At runtime, all the version information is available by calling AGetFileVersion() in VFP 6 and later or FoxTool’s GetFileVersion() in VFP 5.

See Also

ActiveProject, AutoIncrement, Build, BuildDateTime, CleanUp, Close, Debug Property, Encrypted, File, Files, HomeDir, Icon, MainClass, MainFile, Name, ProjectHook Property, ProjectHookClass, ProjectHookLibrary, Refresh, SCCProvider, SetMain, ServerHelpFile, ServerProject, TypeLibCLSID, TypeLibDesc, TypeLibName, VersionComments, VersionCompany, VersionDescription, VersionLanguage, VersionNumber, VersionProduct, VersionTrademarks