在成功地安装了 Visual FoxPro 之后,可能需要定制开发环境。环境设置包括主窗口标题、默认目录、项目、编辑器、调试器及表单工具选项、临时文件存储、拖放字段对应的控件和其他选项。
您既可以交互式也可以用编程的方法配置 Visual FoxPro。您甚至可以使 Visual FoxPro 启动时调用您自建的配置文件。有关在配置完成以后如何优化系统的内容,请参阅本书第四章“对系统进行优化”。有关优化 Visual FoxPro 应用程序的详细内容,请参阅《程序员指南》第十五章“优化应用程序”。
本章内容要点:
Visual FoxPro 的配置决定了您的 Visual FoxPro 的外观和行为。例如您可以建立 Visual FoxPro 所用文件的默认位置,指定如何在编辑窗口中显示源代码以及日期与时间的格式等。
对 Visual FoxPro 配置所做的更改既可以是临时的(只在当前工作期有效)也可以是永久的(它们变为下次启动 Visual FoxPro 时的默认设置值)。如果是临时设置,那么它们保存在内存中并在退出 Visual FoxPro 时释放。如果是永久设置,那么它们将保存在 Windows 注册表中。注册表是由 Windows 维护的一个数据库,它保存操作系统、所有 Windows 应用程序、OLE 以及诸如 ODBC 等可选组件的配置信息。例如 Windows 在注册表中存储文件扩展名与应用程序之间的关联,因此单击一个文件名称时,Windows 能够启动或激活相应的应用程序。类似地,Visual FoxPro 把它特定的配置信息存储在注册表中。
有关如何做到这一点的例子,请查看 Visual Studio …\Samples\Vfp98\Classes 目录中的 Registry.prg,它包含了大量基于 Windows API 调用的方法程序,允许您操纵 Windows 注册表。
当您启动 Visual FoxPro 时,它读取注册表中的配置信息并根据它们进行配置。读取注册表之后,Visual FoxPro 还会查找一个配置文件。配置文件是一个文本文件,您可以在其中存储配置设置值来覆盖保存在注册表中的默认值。Visual FoxPro 启动以后,您还可以使用““选项”对话框”或 SET 命令进行附加的配置设定。
使用 Windows 注册表、配置文件及“选项”对话框设置配置
注释 Visual FoxPro 的运行时版本在启动时并不读取 Windows 注册表,因为注册设置值主要是为配置开发环境而设计的。如果您想发布一个使用运行时库的 Visual FoxPro 应用程序,您可以通过两个途径建立配置的设置:使用配置文件或使用用户计算机上可以操纵 Windows 注册表的程序。
Visual FoxPro 还会维护一个资源文件:Foxuser.dbf,它存储您退出 Visual FoxPro 时的当前状态。例如资源文件包含命令窗口的位置及大小、当前键盘宏、显示哪些工具栏等等。Foxuser.dbf 文件是一个普通的 Visual FoxPro 表,您可以在应用程序需要时读取及更改这个表。
您可以使用下列方式交互地设置配置:
若要查看或更改环境设置,您可以使用“选项”对话框。
“选项”对话框
若要显示“选项”对话框
“选项”对话框具有一系列代表不同类别环境选项的选项卡,如下表所示。有关使用每个选项卡可以设置的选项的详细内容,请参阅““选项”对话框”。
“选项”对话框中可用的选项卡
使用该选项卡 | 访问这些特性 |
显示 | 界面选项,比如是否显示状态栏、时钟、命令结果或系统信息。 |
常规 | 数据输入与编程选项,比如设置警告声音,是否记录编译错误,是否自动填充新记录,使用什么定位键,调色板使用什么颜色以及改写文件之前是否警告等。 |
数据 | 表选项,比如是否使用 Rushmore 优化,是否使用索引强制唯一性,备注块大小,查找的记录计数器间隔以及使用什么锁定选项。 |
远程数据 | 远程数据访问选项,比如连接超时限定值,一次拾取记录数目以及如何使用 SQL 更新。 |
文件位置 | Visual FoxPro 默认目录位置,帮助文件存储在何处以及辅助文件存储在哪里。 |
表单 | 表单设计器选项,比如网格面积,所用刻度单位,最大设计区域以及使用何种类模板。 |
项目 | 项目管理器选项,比如是否提示使用向导,双击时运行或修改文件以及源代码管理选项。 |
控件 | 在“表单控件”工具栏中的“查看类”按钮所提供的有关可视类库和 ActiveX 控件选项。 |
区域 | 日期、时间、货币及数字格式。 |
调试 | 调试器显示及跟踪选项,比如使用什么字体与颜色。 |
语法着色 | 区分程序元素所用的字体及颜色,比如注释与关键字。 |
字段映象 | 从数据环境设计器、数据库设计器或项目管理器中向表单拖动表或字段时创建何种控件。 |
您可以把在“选项”对话框中所做设置保存为在当前工作期有效或者保存为 Visual FoxPro 默认(永久)设置。
若要把设置保存为仅在当前工作期有效
当您把设置保存为仅在当前工作期有效时,它们一直起作用直到您退出 Visual FoxPro(或直到您再次更改它们)。要永久保存所做更改,请把它们保存为默认设置;这将把它们存储在 Windows 注册表中。
若要把当前设置保存为默认设置
注释 您对当前设置做更改之后,“设置为默认值”按钮才被激活为可用状态。
通过发出 SET 命令或在启动 Visual FoxPro 时指定一个配置文件,您可以忽略默认设置。有关详细内容,请参阅本章后面的“启动应用程序时设置配置选项”。
大多数显示在“选项”对话框选项卡上的选项都可以通过编程方式使用 SET 命令或给系统内存变量指定值进行修改。例如要使用年 - 月 - 日的日期格式,您可以更改“选项”对话框“区域”选项卡上的“日期格式”设置,或者使用 SET DATA 命令:
SET DATE TO ANSI &&
格式设为年年.
月月.
日日
如果使用 SET 命令配置环境,设置仅在 Visual FoxPro 当前工作期有效,当退出时将放弃这些设置。所以在新的工作期中,您必须重新运行这些 SET 命令。但您可以使用配置文件或在启动时执行这些 SET 命令使这个过程自动进行。有关详细说明,请参阅本章稍后的“启动应用程序时设置配置选项”。
提示 您还可以在“选项”对话框中保存所有 SET 命令的设置。有关详细内容,请参阅本章前面的“保存设置”一节。
您可以直接在 Windows 注册表中做更改从而设置 Visual FoxPro 配置。
Windows 注册表中的 Visual FoxPro 配置
要更改 Windows 注册表,可以使用 Windows 提供的实用工具“注册表编辑器”。
注释 更改 Windows 注册表时要特别注意:更改了错误的注册表项或对某一项做错误的设置都能产生错误,导致 Visual FoxPro 不能启动或不能正常工作。
若要在注册表中更改配置
Software\Microsoft\VisualFoxPro\6.0\Options
您的更改将在下次启动 Visual FoxPro 时起作用。
您也可以从 Visual FoxPro 程序中调用 Windows API 来更改注册表。
运行 Visual FoxPro 之后,可以使用“选项”对话框或 DISPLAY STATUS 命令,也可以通过显示各 SET 命令的值,检查环境设置。
若要显示多个环境设置
— 或者 —
若要显示单个环境设置
注释 由于设置仅在当前数据工作期有效,所以您必须收集设置值并把它们放置在一个程序或表单的 Init 事件代码中,以供每个私有数据工作期使用。
若要把“选项”对话框设置反映到“命令”窗口中
设置反映在“命令”窗口中。
除了交互地更改 Visual FoxPro 环境之外,您还可以在开始启动程序时建立配置。这样做允许您忽略默认设置。
本节描述您如何:
建立配置设置的一个途径就是在您的应用程序启动时运行一系列 SET 命令。例如若要配置系统使得应用程序启动时在状态栏中显示一个时钟,您可以执行这个 SET 命令:
SET CLOCK ON
在何处执行这一系列 SET 命令取决于您的应用程序的需要。一般说来,您应在应用程序的主文件中编写 SET 命令。主文件是控制对其他组件的访问的程序或表单。有关指定应用程序主文件的详细内容,请参阅《程序员指南》第十三章“编译应用程序”。
例如,如果您的应用程序从显示一个表单开始,您可以在表单 Load 或 Link 事件代码中发出 SET 命令。如果您的应用程序从一个菜单开始,可以在菜单的初始化选项中输入 SET 命令,有关详细信息,请参阅《程序员指南》第十一章“设计菜单与工具栏”中的“向菜单系统添加初始化代码”。
提示 一个管理启动 SET 命令的有效方法是创建一个包含全部希望发出的 SET 命令的过程。然后您就可以在应用程序适当的位置调用这个过程。把所有 SET 命令保持在单个过程中使调试及维护您的配置设置变得容易。
除了使用“选项”对话框或 SET 命令设置 Visual FoxPro 环境之外,您还可以有选择地建立一些设置并把它们保存进一个或多个配置文件中。Visual FoxPro 配置文件是一个文本文件,可以在其中指定 SET 命令的值,设置系统变量以及执行命令或调用函数。Visual FoxPro 在启动时读取配置文件,建立设置以及执行文件中的命令。在配置文件中的设置将使“选项”对话框中(存储在 Windows 注册表)的默认设置无效。
使用配置文件有几个优点,您可以:
要创建一个配置文件,使用 Visual FoxPro 编辑器(或任何能够创建文本文件的编辑器)在安装 Visual FoxPro 的目录中创建一个文本文件即可。Visual FoxPro 的早期版本在启动目录中创建 Config.fpw 文件,并作为默认配置文件。您可以创建任何程序文件,然后通过双击该文件或使用命令行参数以便用该文件启动 Visual FoxPro,这样可以使用该文件建立默认的设置和行为。
如果正在创建一个新的配置文件,您可以使用任何文件名保存它。习惯上,配置文件使用 .fpw 作为扩展名。
启动 Visual FoxPro 时,可以在下列位置(按顺序)使用默认配置文件:
如果在这些位置没有发现默认配置文件,Visual FoxPro 只使用“选项”对话框中建立的默认设置。
注释 有关指定一个文件代替默认文件名或指定配置文件位置的详细信息,请参阅本章稍后的“指定配置文件”一节。
可以使用下列方法之一输入配置设置:
若要在配置文件中输入 SET 命令
例如要设置默认路径,请使用这种格式:
DEFAULT = HOME()+"\VFP"
要向状态栏添加时钟,请使用这个命令:
CLOCK = ON
若要输入一个系统变量的设置,请使用与在命令窗口或程序中同样的格式。
若要在配置文件中设置系统变量
例如,下面命令设置 Visual FoxPro 主窗口的标题:
_SCREEN.Caption = "My Application"
下面命令指定了一个替代的拼写检查程序:
_SPELLCHK = "SPLLCHK.EXE"
您还可以使用 COMMAND 命令在一个配置文件中调用函数或执行程序。例如您可以启动一个初始化程序作为启动过程的一部分。
若要在配置文件中调用函数或执行命令
例如,要在 Visual FoxPro 主窗口标题中包含 Visual FoxPro 版本号,请使用命令:
COMMAND =_SCREEN.Caption=;
"Visual FoxPro " + SUBSTR(VERS(),25,3)
下面的命令在 Visual FoxPro 启动时执行一个特定的应用程序;
COMMAND = DO MYAPP.APP
您也可以在配置文件中使用特殊术语,它们不对应于 SET 值、系统变量或命令。
若要在配置文件中使用特殊术语
例如,要设置 Visual FoxPro 的最大可用系统变量数量,请使用命令:
MVCOUNT = 2048
有关配置文件中的特殊术语,请参阅“配置文件中的特殊术语”。
您可以在配置文件中插入命令,在 Visual FoxPro 启动时自动执行程序。您可以使用命令启动整个应用程序或只启动其中一个程序,比如一个初始化系统变量的程序。
若要从配置文件中启动应用程序
_STARTUP = MYAPP.APP
– 或者 –
COMMAND = DO MYAPP.APP
当 Visual FoxPro 启动时,您可以指定一个配置文件,或忽略所有配置文件,而允许 Visual FoxPro 使用它的默认设置。
Visual FoxPro 加载一个配置文件以后,配置文件中的设置优先于“选项”对话框中所做的对应的默认设置。
若要指定配置文件
例如下面命令指定 MYAPP.FPW 为配置文件:
C:\Program Files\Microsoft Visual ;
Studio\Vfp98\Vfp6.exe -CC:\MYAPP\MYAPP.FPW
— 或者 —
如果不希望使用任何配置文件,包括默认的 Config.fpw,那么您可以忽略所有的配置文件。这将导致 Visual FoxPro 只使用在“选项”对话框中建立的默认设置。
若要忽略配置文件
例如,无论配置文件是在启动目录中,还是在系统路径中,若不想使用任何配置文件,可使用下面的命令行:
Vfp6.exe -C
除了使用 SET 命令以及配置文件之外,您还可以通过包含命令行开关来指定启动选项,例如,使用命令行选项可以使 Visual FoxPro 启动屏幕不显示,或使 Visual FoxPro 使用一个非默认的配置文件。下表列出了 Visual FoxPro 中可用的命令行开关。
Visual FoxPro 命令行开关
开关 | 描述 |
|
忽略默认配置文件以及 Windows 注册表设置。 |
|
指定默认配置文件 (Config.fpw) 之外的配置文件(必要时包含路径)。 |
|
指定非默认的运行时 .DLL 文件(必要时包含路径)。 |
|
指定非默认的资源文件(必要时包含路径),这允许您使用 Windows 指定的当前语言之外的语言。 |
|
用有关 Visual FoxPro 的信息刷新 Windows 注册表,比如 Visual FoxPro 文件的关联。 |
|
不显示 Visual FoxPro 启动屏幕。有关的详细内容,请参阅本章稍后的“隐藏启动屏幕”一节。 |
|
注册一个 OLE 组件 |
|
删除一个 OLE 组件 |
|
注册一个 .DLL 组件 |
|
删除一个 .dll 组件 |
有关的详细内容,请参阅“命令行开关”。
如果命令开关需要诸如文件名等参数,在开关及参数之间不应包括空格。用单个空格分离多个选项。例如要在启动 Visual FoxPro 时指定一个配置文件,应使用下面的命令:
C:\Vfp98\VFP6.EXE -CC:\MYAPP\MYAPP.FPW
默认情况下,Visual FoxPro 启动时将在屏幕上显示一个启动屏幕,包含 Visual FoxPro 商标、版本号以及其他信息。如果不希望您的用户看到这个启动屏幕,您可以隐藏它。
若要不显示启动屏幕
注释 为保持与 Visual FoxPro 先前版本的一致性,您也可以使用 FOXPROWCFG DOS 环境变量设置开关,但最好不要使用这个方法。
例如,若想在启动 Visual FoxPro 时不显示启动屏幕,可以使用下面的命令行:
VFP6.EXE -T
Visual FoxPro 包含下列可定制的工具栏:
工具 | 相关的工具栏 | 命令 |
数据库设计器 | 数据库 | CREATE DATABASE |
表单设计器 | 表单控件
表单设计器 调色板 布局 |
CREATE FORM |
打印预览 | 打印预览 | |
查询设计器 | 查询设计器 | CREATE QUERY |
报表设计器 | 报表控件
报表设计器 调色板 布局 |
CREATE REPORT |
默认情况只有“常用”工具栏可见。当您使用一个 Visual FoxPro 设计器工具(例如,表单设计器)时,该设计器将显示使用它工作时常用的工具栏。但您可以在任何需要时激活一个工具栏。
若要激活一个工具栏
– 或者 –
若要使一个工具栏不活动
– 或者 –
创建自定义工具栏最简单的方法就是修改 Visual FoxPro 提供的工具栏。您能够:
您也可以使用代码创建一个自定义工具栏类来定义自定义工具栏。有关详细内容,请参阅《程序员指南》中的第十一章“设计菜单与工具栏”。
您可以修改 Visual FoxPro 提供的任何工具栏。例如您可能希望从一个现有工具栏中移去一个按钮或者从一个工具栏向另一个工具栏复制按钮。
若要修改 Visual FoxPro 工具栏
提示 在更改了 Visual FoxPro 工具栏之后,您还可以把它恢复到原来的配置。方法是在“工具栏”对话框中选择工具栏,然后选择“重置”。
您可以创建自己的工具栏,它由来自其他工具栏的按钮组成。
若要创建您自己的工具栏
注释 您不能重置自己创建的工具栏上的按钮。
若要删除创建的工具栏
注释 您不能删除 Visual FoxPro 提供的工具栏。
通过设置字体与文本对齐,您可以配置 Visual FoxPro 编辑器使之按您希望的方式显示文本。您还可以设置缩进、换行、自动备份文件以及其他特性,使编辑器更易使用。
若要配置编辑器,请使用“编辑属性”对话框。
“编辑属性”对话框
有关编辑器设置的详细内容,请参阅““编辑属性”对话框”。
若要显示“编辑属性”对话框
提示 在编辑窗口中单击鼠标右键,从快捷菜单中选择“字体”,可以直接显示“字体”对话框。
默认时,您在“编辑属性”对话框中所做的设置仅用于当前编辑窗口。例如,如果您更改字体,当前窗口全部文本的字体都更改。如果您打开另外一个编辑窗口或您关闭当前窗口再重新打开一次,仍将使用原来的默认字体。
如果您愿意,您可以永久地保存您的设置,或者用于所有相似类型的文件。如果您选择对相似文件类型应用选项,在您打开具有同样扩展名的文件时,(例如,所有 .prg 文件或所有表单设计器的方法程序代码),Visual FoxPro 将使用该设置。
若要永久保存编辑器选项
若要对相似文件应用编辑器选项
您还能够在编辑器中设置关键字、注释以及其它程序元素专用的颜色和字体。有关的详细内容,请参阅““语法着色”选项卡,“选项”对话框”。
如果您希望关闭所有操作,返回 Visual FoxPro 启动时的状态,那么在命令窗口或在退出 Visual FoxPro 之前最后调用的程序中,按下列顺序运行如下命令。
CLEAR ALL
CLOSE ALL
CLEAR PROGRAM
CLEAR ALL 从内存中移去所有对象,按顺序关闭所有私有数据工作期以及其中的临时表。
CLOSE ALL,在 CLEAR ALL 正确执行后,关闭 Visual FoxPro 默认数据工作期,即数据工作期 1 中的所有数据库、表以及临时表。
CLEAR PROGRAM 清除最近执行程序的程序缓冲区。CLEAR PROGRAM 迫使 Visual FoxPro 从磁盘而不是从程序缓冲区中读取文件。
在事务过程中清理 如果事务正在执行过程中,应在执行 CLEAR ALL、CLOSE ALL 以及 CLEAR PROGRAM 之前对每一层事务使用 END TRANSACTION 命令。
在缓冲式更新过程中清理 如果在缓冲式更新的过程中,应在执行 CLEAR ALL、CLOSE ALL 以及 CLEAR PROGRAM 之前对每一个有缓冲式更新的临时表使用 TABLEUPDATE( ) 或TABLEREVERT( ) 函数。