Microsoft FoxPro 一贯坚持在 FoxPro 应用程序和 XBase 语言中为开发者提供应用程序的开发工具。Visual FoxPro 已经增加了面向对象的语言和方式。本版的 Visual FoxPro 包括一个增强的应用程序开发框架以及对象的创建和维护工具,目的是为了实现应用程序的快速开发并且使维护工作更流畅。
本章的主要内容∶
“组件管理库”是软件对象(例如类库、表单、按钮等)类型的容器,也包含新的 Visual FoxPro 类。可使用“组件管理库”将组件分成对象、项目、应用程序或其他类。这种可视分组方式可进行动态定制,这样可以使用、复制或重新组织“组件管理库”中几种不同分类的组件。在“组件管理库”的任何地方,只要放置了对指定数据项的引用,都可以对其进行访问。对于单独的项目,在不同的目录或文件夹中可以有多个引用。例如,一个按钮可能会出现在一个或几个“组件管理库”的项目目录中(用文件夹代表),也可能在“工具”目录中出现,因为在“工具”目录中包含了所使用的所有按钮。
可以使用“组件管理库”管理由不同的“项目管理器”、“类浏览器”和表单控件工具栏提供的所有功能。在指定的项目文件或类库的环境中,其他每个 Visual FoxPro 组件对项目或类提供了特定的功能。使用“组件管理库”可以在一个抽象的设计水平上或在一个有明确的开发目标的水平上,管理各组件间的关系及组件的许多行为。
可以在“组件管理库”中拖放组件,也可以从“组件管理库”中将组件拖放到项目或表单。在“组件管理库”中可以更改对象或类的属性。
“组件管理库”可以包含任何 Visual FoxPro 元素,如本地或远程的文档、文件或文件夹、Microsoft Excel 和 Word 等自动服务程序(Automation Server)、HTML 位置和文件,也包括含有代码片段、类向导、生成器或艺术文件的 .prg 文件。
若要打开“组件管理库”
-或者-
可以使用“组件管理库”创建项目和应用程序,并对其开发进行管理。在“组件管理库”内,可以使用“组件管理库”管理其中的组件,或者使用“组件管理库”中的模板、生成器和向导来创建所需的项目或应用程序。
若要在“组件管理库”中创建项目或应用程序
对于目录和文件夹,可选择相应的选项卡和选项对其进行更改。详细内容,请参阅“组件管理库选项”对话框。
可以将“组件管理库”右窗格“对象”窗格中的数据项移动到桌面或打开的项目或表单中。“项目管理器”将重新组织“组件管理库”需要引用的数据项,并将其放在“项目管理器”的适当位置。放在桌面上的“组件管理库”数据项不具有任何功能,数据库、文件夹和代表非可视文件的管理器数据项都没有桌面表示。
若要在“组件管理库”中移动数据项
位于“组件管理库”窗口左上角的移动图标会根据选择的数据项有所变化。
如果“组件管理库”不能找到由管理器数据项代表的原数据项时,将打开“定位数据项”对话框,这时可以定位该数据项。
下表列出了 Visual FoxPro 中的管理器数据项及其默认行为。
组件管理库数据项的类型 | 拖放目标 | |||
项目 | 表单 | 屏幕 | 控件 | |
类 (_ClassItem) | 6 | |||
文件 (_FileItem) | ||||
URL (_UrlItem) | 1 | |||
表单 (_FormItem) | 9 | 11 | ||
报表 (_ReportItem) | 9 | 11 | ||
程序 (_ProgramItem) | 11 | |||
菜单 (_MenuItem) | 10 | 11 | ||
图象 (_ImageItem) | 2 | 7 | 2 | |
声音 (_SoundItem) | 3 | |||
视频 (_VideoItem) | 3 | |||
ActiveX (_ActiveXItem) | ||||
数据 (_DataItem) | 4 | |||
模板 (_TemplateItem) | 5 | |||
目录 (_CatalogItem) | 8 | |||
示例 (_SampleItem) | ||||
项目 (_ProjectItem) | 11 |
1 - 添加 hyperlink 类
2 - 添加一个图象类或设置 Picture 属性
3 - 添加一个多媒体类
4 - 添加一个表格类
5 - 根据类型(例如表单)的不同,将创建新文件并将其添加到项目中
6 - 在屏幕上创建一个实例
7 - 设置 Visual FoxPro 的墙纸
8 - 使用该目录来启动新的“管理库”窗口
9 - 添加一个 Button 类,以启动表单/报表
10 - 向表单添加一个快捷菜单
11 - 在一个设计器中打开(修改)
在右窗格、即“对象”窗格中选中的数据项上单击鼠标右键,将显示“数据项”快捷菜单,其上包含该数据项的所有行为选项,包括“添加至项目”或“添加至表单”选项。使用快捷菜单可以修改数据项,有时则可以运行数据项。快捷菜单为各管理库数据项所特有。在快捷菜单上单击“属性”,将打开数据项的“属性”对话框,这时可以更改选中数据项的某些属性。
“组件管理库”文件夹代表管理库数据项的一个任意分组,可以通过拖放来重新组合管理库数据项,或者可以将数据项复制到其他文件夹中。可以复制和重命名一个目录或文件夹,并且重新组合其中的数据项。对于如何使用、修改或创建目录或文件夹,几乎没有任何限制。
由于“组件管理库”数据项代表对象或类等真实数据项,因此可以通过“组件管理库”来访问原对象,当然也可以查看或修改这些类。
若要查看类
将打开“类浏览器”,可以查看选中的类的属性和方法程序。
若要修改类
将在“类设计器”中打开该类。
可以使用“组件管理库”复制或修改表单,并将表单和其他管理库数据项添加到项目中。
若要在“组件管理库”中创建表单
-或-
-或-
使用目录和文件夹的默认设置可以实现对管理库数据项的基本查看和管理。如果需要修改目录或文件夹的属性,或者需要更好地访问管理库属性,可以选择“组件管理库选项”对话框中的“高级编辑可用”。
打开“组件管理库”时,左边的“目录”窗格将显示与“组件管理库”一起发布的默认目录。目录是属于 Visual FoxPro 或用户定义的一组数据项中的数据项的可视表示。可以在目录中创建文件夹,以便更好地组织数据项的子分组。数据项可以是表单、查询、程序、模板、艺术文件、声音文件或其他对象。Visual FoxPro “组件管理库”的默认目录将数据项分成几组,包括表单、控件及其他对象。默认目录还包含一个空的文件夹,称为“Favorites”,可在其中创建或复制管理库数据项。也可以复制或重命名默认目录,或创建自己的目录。
“组件管理库”目录的选项可以设置目录中的内容和打开行为。全局目录可以包含任何类型的“组件管理库”数据项。默认目录将在启动“组件管理库”时自动打开。有关的详细内容,请参阅“组件管理库选项”对话框的“目录”选项卡。
“组件管理库”包含下列目录。
目录 | 说明 |
VFPGLRY | 包含管理库中其他目录使用的组件、同 Visual FoxPro 一起发布的所有目录。 默认和全局目录。 |
Visual FoxPro | 包含 Visual FoxPro 的基类。 默认目录。 |
Favorites | 一个空的文件夹。 全局目录。 |
My Base Classes | 包含 Visual FoxPro 基类的子类。 默认目录。 |
ActiveX | 动态目录,其中包含所有已注册 ActiveX 控件的列表,或包含所有 Visual FoxPro ActiveX 控件的列表。 默认目录。 |
World Wide Web | 是 Web 站点 URL 的集合。 |
Multimedia | 各种可以在应用程序中使用的图片、声音和视频数据项。 |
Samples | 对 Solutions、Tastrade、ActiveX 服务程序和客户/服务器示例的引用。 |
单击右边“对象”窗格列表视图的一个目录时,将显示该目录中的内容。双击任一窗格中的目录,可以打开其他目录。在管理库文件夹中,包含几个目录。
在适当的属性对话框中,通过更改目录、文件夹和管理库数据项的默认行为,可以定制“组件管理库”。
若要创建“组件管理库”的目录
若要更改目录或文件夹的配置
如在“组件管理库”窗口的“目录”窗格中所显示管理库目录和文件夹可代表 URL、文件夹或硬盘上的文件。可以按照“Web 视图”或“资源管理器视图”的方式来查看管理库文件夹,查看的方式取决于在“文件夹属性”对话框“常规”选项卡中指定的名称。
可以将 URL 或文件指定为管理库目录或管理库数据项。将数据项配置为一个管理库文件夹,并在“目录”窗格进行选择时,该数据项将在“对象”窗格中自动地打开为 Web 视图。
若要将管理库目录或文件夹配置为 Web 视图
http:\\www.microsoft.com\
file:\\c:\my documents\testpage.htm
file:\\c:\my documents\Wordfile.doc
在“目录”窗格中突出显示 Web 视图图标时,工具栏将改变并包含 Web 定位按钮。Web 视图将反映出 Windows“资源管理器”的设置。
可以将目录指定为具有 Windows“资源管理器”特征的管理库文件夹或目录。
若要将管理库目录或文件夹配置为资源管理器视图
C:\My Documents\
注释 与其他“组件管理库”视图不同,该设置将创建真实文件的视图。在这种视图中,可以从磁盘中删除文件。
为了创建一个能够保护所显示文件的资源管理器视图,可以使用通配符来指定目标,如下例所示∶
C:\My Documents\*.*
除非拥有一个有大量 RAM 的快速计算机,否则在查找多于 512 个数据项时,不要使用通配符创建动态文件夹。
“组件管理库”由一个界面组成,该界面的类保存在 Vfpglry.vcx 中,包含引用下列 Visual FoxPro 基类的数据项。
对象 | 说明 | 类库 |
“关于”对话框(About Dialog Box) | 为自定义应用程序提供一个简单的“关于”对话框。 | _dialogs.vcx |
ActiveX 日历(ActiveX Calendar) | 和日期字段绑定的日历控件。 | _datetime.vcx |
数组处理器(Array Handler) | 为不是本地产品数组函数操作的数组操作提供方法程序。 | _utility.vcx |
“取消”按钮(Cancel Button) | 释放一个表单,并放弃任何未保存的缓冲数据。 | _miscbtns.vcx |
时钟(Clock) | 表单或容器的一个简单时钟控件。 | _datetime.vcx |
冲突捕捉器(Conflict Catcher) | 一个对话框,用于解决在优化缓冲时编辑中出现的行冲突。 | _dataquery.vcx |
Cookies 类(Cookies Class) | 一个简单的 Web 类,用于处理 Web 网页之间的 cookies。 | _internet.vcx |
交叉表(Cross Tab) | 生成“交叉”选项卡。 | _utility.vcx |
“数据编辑”按钮(Data Edit Buttons) | 编辑按钮的完整集合(如“表单向导”中使用的按钮)。 | Wizbtns.vcx |
“数据定位”按钮(Data Navigation Buttons) | “第一个”、“下一个”、“前一个”、“最后一个”定位分组、以及 DataChecker 类,用来检查在移动记录时遇到的冲突。 | _datanav.vcx |
数据定位对象(Data Navigation Object) | 一个其他类可以使用的非可视定位对象。 | _table.vcx |
数据工作期管理器(Data Session Manager) | 管理数据工作期并且处理数据更新。 | _app.vcx |
数据有效性(Data Validation) | 对缓冲的数据进行数据冲突捕捉。 | _datanav.vcx |
DBF -> HTML | 将一个 Visual FoxPro 临时表 (.dbf) 转换为 HTML。 | _internet.vcx |
“唯一值”组合框(Distinct Values Combo) | 检查来自 ControlSource 字段的数据值的单一性,并填充一个组合框。 | _dataquery.vcx |
错误处理对象(Error Object) | 一个普通的错误处理程序,可用于对象和过程化代码。 | _app.vcx |
字段移动钮(Field Mover) | 一个高级移动器列表框,可以自动加载来自当前数据源的字段。 | _movers.vcx |
应用程序注册表(Application Registry) | 提供一套注册函数,这些函数返回应用程序的特定信息。 | Registry.vcx |
文件版本(File Version) | 从一个文件的版本资源获取信息。 | _utility.vcx |
“筛选”对话框按钮(Filter Dialog Box Button) | 显示一个对话框,对特定字段指定数据筛选条件。 | _table2.vcx |
“筛选”对话框(Filter Dialog Box) | 一个对话框,可用来指定数据的筛选条件。 | _table.vcx |
“筛选表达式”对话框(Filter Expression Dialog Box) | 创建一个高级的“筛选表达式”对话框。 | _table.vcx |
“查找”(“查找下一个”)按钮(Find (Findnext) Buttons) | 一个普通的查找/查找下一个按钮集。 | _table.vcx |
“查找”按钮(Find Button) | 根据指定的条件定位一个记录。 | _table.vcx |
“查找”对话框(Find Dialog Box) | 一个有简单选项的查找对话框,如字段选取。 | _table.vcx |
查找文件或文本(Find Files/Text) | 使用 Filer.DLL COM 对象搜索文件。 | _utility.vcx |
查找对象(Find Object) | 创建一个普通的对象,来根据指定的条件定位记录。 | _table.vcx |
“字体”组合框(Font Combobox) | 一个组合框,其中列出了可用的字体。也可用于 tbrEditing 和 rtfControls 类。 | _format.vcx |
“字体大小”组合框(Fontsize Combobox) | 一个组合框,其中列出了可用的字体大小。也可用于 tbrEditing 和 rtfControls 类。 | _format.vcx |
“格式”工具栏(Format Toolbar) | 提供一个工具栏,对活动控件中的文本应用字体。 | _format.vcx |
FRX -> HTML | 将 Visual FoxPro 的报表输出 (.frx) 转换为 HTML。 | _internet.vcx |
获得文件和目录(Get File and Directory) | 获取文件和文件夹的名称。 | _controls.vcx |
“转到”对话框按钮(GoTo Dialog Box Button) | 创建一个显示“转到”对话框的按钮。 | _table2.vcx |
“转到”对话框(GoTo Dialog Box) | 创建一个“转到”记录对话框。 | _table.vcx |
根据记录绘制图形(Graph By Record) | 一个定位按钮组,可用来一个记录接一个记录地刷新图形。 | _utility.vcx |
图形对象(Graph Object) | 使用核心的“图形向导”引擎生成图形。 | Autgraph.vcx |
“帮助”按钮(Help Button) | 当开始搜索特定的 HelpContextID 时,显示“帮助”文件。 | _miscbtns.vcx |
“超级链接”按钮(Hyperlink Button) | 通过一个按钮启动 Web 浏览器。 | _hyperlink.vcx |
超级链接图象(Hyperlink Image) | 通过一个图片启动 Web 浏览器。 | _hyperlink.vcx |
超级链接标签(Hyperlink Label) | 通过一个标签启动 Web 浏览器。 | _hyperlink.vcx |
INI 访问(INI Access) | 一组可以访问旧 INI 型文件设置的注册函数。 | Registry.vcx |
数据项定位器(Item Locator) | 可以打开一个对话框按钮,用来定位一个记录。 | _dialogs.vcx |
“关键字”对话框(Keywords Dialog Box | 创建一个与“组件管理库”的关键字对话框类似的对话框。 | _dialogs.vcx |
“启动”按钮(Launch Button) | 使用选项文档启动一个应用程序。 | _miscbtns.vcx |
“定位”按钮(Locate Button) | 显示一个对话框,用来定位一个记录。 | _table2.vcx |
“查找”组合框(Lookup Combobox) | 查找一个字段中的值,以填充一个组合框。 | _dataquery.vcx |
邮件合并对象(Mail Merge Object) | 使用核心的“邮件合并向导”引擎生成一个 Word 的邮件合并。 | Mailmerge.vcx |
消息框处理器(Messagebox Handler) | MessageBox 函数的一个简单的包装程序。 | _dialogs.vcx |
鼠标经过效果(MouseOver Effects) | 当鼠标经过一个控件时,突出显示该控件。 | _ui.vcx |
移动钮(Mover) | 提供一个带有移动或删除按钮的简单的移动列表类。 | _movers.vcx |
“定位”快捷菜单(Navigation Shortcut Menu) | 一个可以在表单上打开的快捷菜单。 | _table2.vcx |
“定位”工具栏(Navigation Toolbar) | 工具栏上的一组定位按钮。 | _table2.vcx |
对象状态(Object State) | 确定一个对象的状态,以及保存或恢复对象属性的设置。 | _app.vcx |
ODBC 注册表(ODBC Registry) | 一组返回 ODBC 特定信息的注册函数。 | Registry.vcx |
脱机开关(Offline Switch) | 提供一个联机数据视图,以便脱机使用。 | _dataquery.vcx |
“确定”按钮(OK Button) | 执行简单的表单释放。 | _miscbtns.vcx |
输出控件(Output Control) | 显示一个复杂的对话框,提示用户选择报表输出选项。 | _reports.vcx |
“输出”对话框(Output Dialog Box) | 显示一个对话框,提示用户选择报表输出选项。 | _reports.vcx |
输出对象(Output Object) | 各种报表输出选项。 | _reports.vcx |
“密码”对话框(Password Dialog Box) | 用户自定义应用程序的简单“口令”对话框。 | _dialogs.vcx |
数据透视表(Pivot Table) | 使用核心的“数据透视表”生成一个 Microsoft Excel 数据透视表。 | Pivtable.vcx |
预览报表(Preview Report) | 一个运行报表的普通按钮。 | _miscbtns.vcx |
QBF | 为 Query-By-Form 查询提供一个按钮组。 | _dataquery.vcx |
注册表访问(Registry Access) | 提供对 Windows 注册表中信息的访问。 | registry.vcx |
调整大小对象(Resize Object) | 通过表单的调整大小事件来移动或调整表单对象的大小。 | _controls.vcx |
RTF 控件(RTF Controls) | 提供一组按钮,以便对活动控件中的文本应用字体样式。 | _format.vcx |
“运行表单”按钮(Run Form Button) | 一个运行表单的按钮。 | _miscbtns.vcx |
SCX -> HTML | 将 .scx 表单转换为 HTML 文件。 | _internet.vcx |
“发送邮件”按钮(SendMail Buttons) | 使用 MAPI ActiveX 控件从一个表单发送一条邮件消息。 | _miscbtns.vcx |
外壳程序运行(Shell Execute) | 提供 Windows Explorer 的双击行为。 | _environ.vcx |
快捷菜单类(Shortcut Menu Class) | 该打包类可以动态创建弹出快捷菜单。 | _menu.vcx |
“简单编辑”按钮(Simple Edit Buttons) | 提供简单的“添加”、“编辑”、“删除”、“复制”、“保存”和“取消”按钮(如“表单向导”所使用的按钮)。 | Wizbtns.vcx |
“简单定位”按钮(Simple Navigation Buttons) | 提供一组“前一页”和“后一页”定位按钮。 | _table.vcx |
“简单图片定位”按钮(Simple Picture Navigation Buttons) | 为一组简单的图片定位按钮。 | _table2.vcx |
“排序”对话框按钮(Sort Dialog Box Button) | 显示一个对话框,用来对特定的字段进行升序或降序排序。 | _table2.vcx |
“排序”对话框(Sort Dialog Box) | 对特定的字段进行升序或降序排序。 | _table2.vcx |
排序移动钮(Sort Mover) | 该高级移动器列表类的子类可以自动处理数据的排序。 | _movers.vcx |
排序对象(Sort Object) | 对一个数据源进行排序。 | _table.vcx |
排序选择钮(Sort Selector) | 根据当前的控件进行升序或降序排序。 | _table2.vcx |
声音播放器(Sound Player) | 该类可以加载和播放声音文件。 | _multimedia.vcx |
启动屏幕(Splash Screen) | 为用户自定义应用程序提供一个简单的闪烁屏幕。 | _dialogs.vcx |
SQL Pass Through | 提供 SQL Pass Thru,并可以执行宿主程序中数据库的存储过程。 | _dataquery.vcx |
跑表(Stop Watch) | 为表单或容器提供一个终止监视控件。 | _datetime.vcx |
字符串库(String Library) | 执行各种字符串的转换。 | _utility.vcx |
高级移动钮(Super Mover) | 提供“移动”、“删除”、“全部移动”和“全部删除”按钮。 | _movers.vcx |
系统工具栏(System Toolbar) | 一个管理器类,可以处理和跟踪系统工具栏。 | _app.vcx |
表移动钮(Table Mover) | 该高级移动器列表框类的子类可以自动从当前数据源加载表和字段。 | _movers.vcx |
文本预览(Text Preview) | 提供输出文本的一个查看器。 | _reports.vcx |
进度表(Thermometer) | 提供一个标准的进度显示类。 | _controls.vcx |
跟踪了解计时器(Trace Aware Timer) | 该共用应用程序能够确定跟踪窗口是否打开。 | _app.vcx |
类型库(Type Library) | 主例程 ExportTypeLib 使用 Typelib 输出创建一个文本文件。 | _utility.vcx |
URL 组合框(URL Combo) | 创建一个能键入 Web URL 的组合框。可以启动 Microsoft Internet Explorer 并定位到指定站点。 | _internet.vcx |
“打开 URL”对话框(URL Open Dialog Box) | 提供一个对话框,创建一个存储 URL 历史的下拉列表。 | _internet.vcx |
VCR 按钮(VCR Buttons) | 一个“第一个”、“下一个”、“前一个”和“最后一个”的定位按钮组。 | _table.vcx |
VCR 图片定位按钮(VCR Picture Navigation Buttons) | 一组 VCR 图片定位按钮。 | _table2.vcx |
视频播放器(Video Player) | 使用 MCI 命令加载和播放一个视频文件。 | _multimedia.vcx |
Web 浏览器控件(Web Browser Control) | Internet Explorer 4.0 Browser 控件的子类,提供了对 Visual FoxPro 代码的挂接程序。 | _webview.vcx |
窗口处理器(Window Handler) | 执行几个常见的应用程序普通窗口操作。 | _ui.vcx |
有关这些类库的详细内容,请参阅“Visual FoxPro 的基本类”主题。从“Visual FoxPro 基本类的使用指南”主题,可以得到有关如何使用基类的信息。
“组件管理库”的类库 Vpfgallery.vcx 提供了数据项类型的类。
数据项类型 | 说明 |
类 (_ClassItem) | 为任一 Visual FoxPro 类的普通数据项类型。这种类型的数据项可以来自 .vcx 或 .prg 文件。 |
文件 (_FileItem) | 为任一文件。Visual FoxPro 读取注册表中的外壳函数,并将其添加到菜单中。管理库包含一个查询例程,用来检查特定的扩展名并且重新定向数据项类型。
对于集体开发(通过网络共享目录),管理库支持 UNC 命名约定。 |
ActiveX (_ActiveXItem) | 为 ActiveX 控件或服务程序,如由 Visual Basic CCE 创建的一个 .ocx 文件,或由 Visual FoxPro 创建的 .exe/.dll 文件。 |
数据 (_DataItem) | 为 Visual FoxPro 数据源(.dbc、.dbf 和视图等)。 |
图象 (_ImageItem) | 为文件数据项类型,这种文件有图形文件扩展名,例如 .bmp、.jpg、.gif、.ico、.cur、.ani 等等。 |
声音 (_SoundItem) | 为文件数据项类型,这种文件有一个 .wav 或 .rmi 文件扩展名。 |
视频 (_VideoItem) | 为文件数据项类型,这种文件有一个 .avi 文件扩展名。 |
URL (_UrlItem) | 为 Web 数据项类型,包含 Web 和本地文档,例如 HTML 文件或 Visual FoxPro Active Documents。 |
示例 (_SampleItem) | 为文件数据项类型,这种文件在 Visual FoxPro 中运行,并且可以是可执行的 Visual FoxPro 文件,例如 .app、.exe、.prg、.scx 或 .frx 文件。 |
模板 (_TemplateItem) | 为 Script 数据项类型,能为 Visual FoxPro 元素打开一个生成器,该元素由突出显示的数据项表示,包括表单和报表。 |
目录 (_CatalogItem) | 为“组件管理库”类型,可用来添加和打开 Visual FoxPro 目录。 |
表单 (_FormItem) | 为 Visual FoxPro 表单 (.scx) 的类型。 |
报表 (_ReportItem) | 为 Visual FoxPro 报表 (.frx) 的类型。 |
菜单 (_MenuItem) | 为 Visual FoxPro 菜单 (.mnx) 的类型。 |
程序 (_ProgramItem) | 为 Visual FoxPro 程序 (.prg) 的类型。 |
项目 (_ProjectItem) | 为 Visual FoxPro 项目 (.pjx) 的类型。 |
可以使用“类浏览器”考察这些类的详细内容。
有关在“组件管理库”中使用的其他类的详细内容,请参阅“Visual FoxPro 的基本类”主题,或者使用“类浏览器”考察 Ffc 文件夹中的库。
下表描述了 Visual FoxPro“组件管理库”。
字段 | 字段名称 | 类型 | 宽度 | 索引 |
1 | TYPE | 字符型 | 12 | No |
2 | ID | 字符型 | 12 | No |
3 | PARENT | 备注型 | 4 | No |
4 | LINK | 备注型 | 4 | No |
5 | TEXT | 备注型 | 4 | No |
6 | TYPEDESC | 备注型 | 4 | No |
7 | DESC | 备注型 | 4 | No |
8 | PROPERTIES | 备注型 | 4 | No |
9 | FILENAME | 备注型 | 4 | No |
10 | CLASS | 备注型 | 4 | No |
11 | PICTURE | 备注型 | 4 | No |
12 | FOLDERPICT | 备注型 | 4 | No |
13 | SCRIPT | 备注型 | 4 | No |
14 | CLASSLIB | 备注型 | 4 | No |
15 | CLASSNAME | 备注型 | 4 | No |
16 | ITEMCLASS | 备注型 | 4 | No |
17 | ITEMTPDESC | 备注型 | 4 | No |
18 | VIEWS | 备注型 | 4 | No |
19 | KEYWORDS | 备注型 | 4 | No |
20 | SRCALIAS | 备注型 | 4 | No |
21 | SRCRECNO | 数值型 | 6 | No |
22 | UPDATED | 日期时间型 | 8 | No |
23 | COMMENT | 备注型 | 4 | No |
24 | USER | 备注型 | 4 | No |
代码范围应用程序记录了文件中正在运行的代码行的信息。一个分析程序提供了哪行代码已经运行,一行代码运行所需要的时间、持续时间等信息。代码范围模式和分析模式使开发者能辨别一个应用程序中出问题的区域,特别是跳过代码和性能瓶颈。
Visual FoxPro 代码范围分析器提供两个部分 - 一个代码范围引擎,可使用和定制;一个多窗口应用程序,可用来分析程序和项目。
代码范围分析器应用程序提供数种查看数据的方式,这些数据是由代码范围引擎提供的,Coverage.app 是代码范围引擎的一个子类。用户可以自动地进行代码范围分析、或者修改用户界面以适应不同的需要,按无人照管方式运行代码范围分析器,将不显示应用程序窗口,或者只使用其引擎功能而不使用界面。
在启动之前,代码范围程序将挂起覆盖范围记录,覆盖范围记录是由 SET COVERAGE TO 命令启用的。在释放了代码范围对象时,代码范围程序将提示是否保存 SET COVERAGE 的设置。
代码范围分析器使用日志文件进行工作,该日志文件是在 Visual FoxPro 中使用调试器“工具”菜单中的“编辑日志”选项时创建,或者使用 SET COVERAGE TO 命令时创建∶
SET COVERAGE TO cCoverage.log
使用该命令时,利用 ADDITIVE 子句可不覆盖现有的日志。这个命令将启动数据流,并打开 cCoverage.log 文件,该文件为文本文件,收集了待检查文件或应用程序的详细信息。
代码范围日志文件包含成行的记录,行是用逗号分隔的。下表说明了每个记录的结构。
数据项 | 说明 |
1 | 执行时间 |
2 | 执行代码的类 |
3 | 找到或调用的对象、方法程序或过程的代码 |
4 | 方法程序或过程中的行数 |
5 | 完整定义的文件 |
6 | 调用堆栈水平(只用于 Visual FoxPro 6.0) |
在指定日志文件的名称后,运行需要检查的程序或应用程序。结束程序时,可以使用 SET COVERAGE TO 命令以停止向代码范围日志中流入数据。
通过“工具”菜单启动代码范围分析器可以查看代码范围日志,或使用如下 DO 命令∶
DO (_COVERAGE) [WITH cCoverage]
如果没有指定日志文件的名称,Visual FoxPro 将提示输入一个名称。Visual FoxPro 6.0 中 _COVERAGE 系统变量是代码范围分析器程序 Coverage.app 的默认值。
为了有效地使用代码范围分析器,需要仔细地准备应用程序和环境。使用下列指导,可以从代码范围分析器中获得项目或应用程序的准确和有用的信息。
若要使用代码范围分析器检查应用程序的代码范围
代码范围分析器应用程序将默认为按“代码范围模式”打开。
若要使用“代码范围分析器”检查应用程序的分析结果
如果经常进行分析,可以在“代码范围分析器选项”对话框中将默认模式改为“分析方式”。
若要在使用“代码范围分析器”时使用指定的日志文件
在运行代码范围程序时,使用 WITH 选项和日志文件的名称,如下例所示∶
DO (_COVERAGE) WITH "Mylog.LOG"
本示例使用 Mylog.log 日志文件,并打开“代码范围分析器应用程序”窗口以显示结果。如果没有指定日志文件的名称,代码范围分析器将使用当前 SET COVERAGE TO 命令指定的日志文件,或在覆盖范围记录为 OFF 时显示“打开”对话框。
若要使用不带用户界面的“代码范围分析器”
在运行代码范围程序时,使用 WITH 选项,并将无人照管方式指定为真 (.T.),如下例所示∶
DO (_COVERAGE) WITH "Mylog.LOG",.T.
本示例中,代码范围分析器应用程序使用 Mylog.log 日志文件,并且在运行时不显示“代码范围分析器应用程序”窗口。
若要在使用“代码范围分析器”时使用指定的加载项文件
在运行代码范围程序时,使用 WITH 选项和加载项文件的名称,如下例所示∶
DO (_COVERAGE) WITH "Mylog.LOG",, "add_ui.prg"
本示例使用 Mylog.log 日志文件,并打开“代码范围分析器应用程序”窗口以显示结果,然后运行加载项程序 ADD_UI.PRG。第二个未指定的参数是一个逻辑值,指定代码范围引擎是否按无人照管方式运行。默认设置是假 (.F.),并显示代码范围分析器窗口。
除了查看分析器的信息,也可以插入注释或标记,并可将这些信息保存在一个文件中以备用。
默认时,代码范围分析器应用程序在一个单独的窗口中运行。通过更改“环境”选项,可以对其进行重新配置,使之在 Visual FoxPro 主窗口中运行。在“代码范围分析器选项”对话框中,将“环境”选项由“代码范围框架”更改为“FoxPro 框架”,然后重新启动“代码范围分析器”。
也可以使用“代码范围分析器选项”对话框,修改下列“代码范围分析器”的特性。
特性 | 说明 |
加载项 | 指定是否在使用代码范围分析器时使用注册加载项。详细内容,请参阅“代码范围分析器加载项”部分。 |
代码范围标记 | 指定代码范围分析器是否标记代码已经运行或没有运行。 指定用于标记代码的字符。 指定什么时候标记代码。 |
字体 | 指定代码范围分析器中显示代码的字体。 |
便捷路径 | 指定代码范围分析器是否在以前指定的位置中自动寻找文件。 |
启动方式 | 指定代码范围分析器是否打开为“代码范围”或“分析”模式。 |
为了确保“代码范围分析器”处理的文件是正确的,需操作如下∶
代码中的有些行,例如注释、DEFINE CLASS 和 ELSE 语句,以及 TEXT … ENDTEXT 中的行,因其不可执行,将不出现在代码范围日志中。另外,用连续符号分开的行被认为是一行代码,只在其最后一行标记。
加载项是代码文件(通常是 .prg 或 .scx),为调整代码范围分析器提供了一个简便的方法。代码范围引擎的 cov_standard 子类包含了 Coverage.app 的用户界面,该子类只显示操作引擎的一小部分。引擎将分析代码范围日志,cov_standard 可按需要的各种方式显示结果。
可以创建 cov_engine 的不同子类,将得到不同的显示。例如,您的子类可以显示一个对话框,对由引擎收集的代码范围信息进行查询。显示选项可以提供已筛选日志项的标记视图,或只是分析结果的图表。
由于 cov_engine 类提供提供了一个更容易的过程,您无须从零开始创建 cov_engine 的子类来创建新的界面,使用加载项可以向 cov_standard 或任何 cov_engine 子类添加功能。Cov_standard 通过在代码范围分析器主对话框的一个按钮来提供这些功能。在 cov_standard 的实例(例如代码范围分析器)中运行加载项时,该加载项可以管理 cov_engine 的功能、代码范围表以及 cov_standard。加载项也可以向 cov_standard 的可视界面添加新的对话框和功能。
可以编写加载项以改进标准的界面,也可以创建 cov_standard 的子类,以创建全新的界面。
下面列出了加载项可能提供的功能∶
注释 当引擎创建源和目标表,并在加载项中使用字段时,可以使用引擎的 Adjust… 方法程序(AdjustCoverageFilenameCursor( )、AdjustSourceCursor( ) 和 AdjustTargetCursor( ))向源和目标表添加这些字段。
标准代码范围引擎子类中的模式对话框类 cov_AddInDialog,在下拉列表中提供了以前注册的对话框。如果将代码范围引擎 lRegisterAdd-In 选项设置为 ON 时,已成功运行的加载项的完整路径名将被添加到 Windows 的注册表,这样可以方便地再次运行这些加载项。对于 Standard UI 类,可以在“代码范围分析器选项”对话框中设置这个属性。
代码范围引擎对象在 aAddIns 属性中维护所有已注册的加载项。
编写加载项时,需要考虑下列信息∶
可以创建代码范围引擎或其标准子类的子类。下表描述了 COVERAGE 项目源文件集的结构。
文件 | 说明 |
Coverage.prg | 代码范围对象的一个“包装材料”,能实例化该对象。 |
Coverage.vcx Coverage.vct |
引擎的所有类和标准子类。 |
Cov_short.mnx Cov_short.mnt |
快捷菜单。 |
Cov_pjx.frx Cov_pjx.frt |
发送项目级结果的默认机制。 |
Coverage.h | 所有代码范围的头文件,包括以下元素∶
*— 日志和分析的代码范围字符常量∶
*— 代码范围的本地化的字符串(可以使用一些日志和分析的常量)∶
*— 代码范围的普通的对话框组件常量∶
*— 代码范围规格要求∶
*— 代码范围注册对象常量∶
*— 代码范围的可调整选项∶
|
COVERAGE 项目源文件集中可包含各种 .ico、.bmp 和 .msk 文件。
可使用 COV_TUNE.H 文件(包括相应的注释和解释)来熟悉各种可使用的选项,有了这些选项,就不需重新编写有关代码。
由于加载项的使用是由代码范围引擎超类控制,因此创建的其他代码范围子类都可以使用加载项,使用的方式与标准子类相同。
由默认的 Coverage.app 进行实例化的代码范围引擎子类不增大代码范围引擎的 RunAddIn( ) 方法程序,但将启动一个模式对话框,用户可以在启动代码范围引擎的 RunAddIn( ) 方法程序之前,选择一个加载项。模式对话框将得到对 Coverage 对象的引用,并设置代码范围引擎的 cAddIn 属性。
如果编写自己的代码范围引擎子类,请确保子类能象标准代码范围程序一样来使用模式对话框类 (cov_AddInDialog) 处理加载项,并且对话框不依赖于标准子类的任何功能。
可以调用不同的模式对话框,直接在 cAddIn 属性中设置 cAddIn 文件名;或将需要运行的加载项文件的名称传递到 RunAddIn( ) 方法程序,覆盖 cAddIn 属性的内容。
不管采取何种方式在子类中访问加载项,通过检查代码范围引擎 aAddIns 属性中的文件名,可以得到注册到 Coverage.app 的加载项列表。
有关代码范围引擎的属性、事件和方法程序的详细内容,请参阅“代码范围引擎对象”。
在早期版本的 Visual FoxPro 中,对项目的访问必须通过对其 .pjx 文件中表的直接管理才能得以实现。在 Visual FoxPro 6.0 中,可以通过编程来访问项目,将项目作为对象来管理。在设计时刻,可以在“项目管理器”中打开项目并对其进行管理;或在设计时刻和运行时刻不显示“项目管理器”。
下面是可以通过编程对一个项目进行的某些操作∶
使用新的项目管理器挂接程序,高级开发者可以创建具有独特的自定义用户界面的项目管理器。
Project 对象的分层结构包含项目、一个 Project 对象以及与其相关的 ProjectHook 对象。Project 对象包含一个文件集合,其中有项目文件、服务程序集合(从项目中创建的自动服务程序)。下图显示了 Visual FoxPro 对象模型中项目对象的分层结构:
通过项目集合可以直接访问一个项目,对其进行管理以及管理项目中的文件和服务程序。在创建、打开项目或从项目中生成 .app、.dll 或 .exe 文件时,将向项目集合中添加一个 Project 对象。
与其他 OLE 集合类似,可以从项目集合中获得一个项目的信息。例如,下列代码使用项目集合的 Count 和 Item 属性,显示项目集合中所有项目的名称,然后使用 FOR EACH 命令显示相同的信息∶
nProjectCount = Application.Projects.Count
FOR nCount = 1 TO nProjectCount
? Application.Projects.Item(nCount).Name
NEXT
FOR EACH oProj IN Application.Projects
? oProj.Name
ENDFOR
下面这行代码使用 ActiveProject 属性向当前活动的项目中添加一个程序 Main.prg∶
Application.ActiveProject.Files.Add('Main.prg')
下面这行代码向第一个添加到项目集合中的项目添加 Main.prg 程序∶
Application.Projects[1].Files.Add('Main.prg')
项目集合有下列属性和方法程序∶
属性 | |
Count |
方法程序 | |
Item |
在从“文件”菜单打开一个项目,或使用 CREATE PROJECT、MODIFY PROJECT、BUILD APP、BUILD DLL、BUILD EXE 或 BUILD PROJECT 命令打开一个项目时,将对一个 Project 对象进行实例化。使用 Project 对象,可以通过编程来管理项目,并可以通过 Visual FoxPro Application 对象对其进行访问。请注意,Application 对象支持一个新的 ActiveProject 属性,对在当前活动的项目管理器中打开的项目,提供一个 Project 对象引用。
Project 对象有下列属性和方法程序∶
方法程序 | |
Build | CleanUp |
Refresh | SetMain |
ProjectHook 对象是一个 Visual FoxPro 基类,在打开分配给 ProjectHook 对象的项目时,将自动对其进行实例化(可以在 CREATE PROJECT 和 MODIFY PROJECT 命令中包含 NOPROJECTHOOK 子句,以阻止为该项目对 ProjectHook 对象进行实例化。)
ProjectHook 对象允许通过编程来访问项目中发生的事件。例如,每当向项目中添加一个文件时执行代码。
在“选项”对话框的“项目”选项卡中,可以为新项目指定默认的 ProjectHook 类。如果没有在“项目”选项卡中为项目指定默认的 ProjectHook 类,新项目将不会被分配为 ProjectHook 类。在“项目信息”对话框中,可为不同的项目指定一个项目挂接类(覆盖默认的 ProjectHook 类)。在运行时刻,则可使用 ProjectHook 属性为项目指定项目挂接类。如果更改了一个项目的 ProjectHook 类,只有当关闭该项目并重新将其打开时,新 ProjectHook 类才起作用。
ProjectHook 对象有下列属性、事件和方法程序∶
属性 | |
BaseClass | Class |
ClassLibrary | Comment |
Name | OLEDropEffects |
OLEDropHasData | OLEDropMode |
Parent | ParentClass |
Tag |
事件 | |
AfterBuild | BeforeBuild |
Destroy | Error |
Init | OLEDragDrop |
OLEDragOver | OLEGiveFeedBack |
QueryAddFile | QueryModifyFile |
QueryRemoveFile | QueryRunFile |
方法程序 | |
AddProperty | ReadExpression |
ReadMethod | ResetToDefault |
SaveAsClass | WriteExpression |
从“文件”菜单中打开项目管理器、使用 CREATE PROJECT 或 MODIFY PROJECT 命令打开项目管理器时,将出现项目管理器窗口,并根据相应的 ProjectHook 对象对一个 Project 对象进行实例化。项目生成命令(BUILD PROJECT、BUILD APP、BUILD DLL 和 BUILD EXE)也可以实例化 Project 和 ProjectHook 对象。
项目中有事件发生时,Project 对象将该事件传递到 ProjectHook 对象,然后运行 ProjectHook 对象中事件的用户代码,并将控制权返回给 Project 对象。从 ProjectHook 对象返回到 Project 对象的返回值决定 Project 对象是否完成了操作。将 NODEFAULT 放在事件代码中可以阻止执行采取默认的行动。例如,将 NODEFAULT 放在 QueryAddFile 的事件代码中,可阻止将一个文件添加到项目中。
使用文件集合可以直接访问一个文件对象,并在项目打开时管理项目中的文件对象。与其他 OLE 集合类似,可以获得文件集合中一个文件的信息。例如,下列代码使用文件集合的 Count 和 Item 属性,来显示文件集合中所有文件的名称,然后使用 FOR EACH 命令显示相同的信息∶
nFileCount = Application.ActiveProject.Files.Count
FOR nCount = 1 TO nFileCount
? Application.ActiveProject.Files.Item(nCount).Name
NEXT
FOR EACH oProj IN Application.ActiveProject.Files
? oProj.Name
ENDFOR
下面这行代码使用 ActiveProject 属性向当前活动的项目中添加一个程序 Main.prg∶
Application.ActiveProject.Files.Add('Main.prg')
下面这行代码向第一个添加到项目集合中的项目添加 Main.prg 程序∶
Application.Projects[1].Files.Add('Main.prg')
文件集合有下列属性和方法程序∶
属性 | |
Count |
方法程序 | |
Add | |
Item |
通过文件对象可以管理项目中的单个文件。
文件对象有下列属性和方法程序∶
属性 | |
CodePage | Description |
Exclude | FileClass |
FileClassLibrary | LastModified |
Name | ReadOnly |
SCCStatus | Type |
方法程序 | |
AddToSCC | CheckIn |
CheckOut | GetLatestVersion |
Modify | Remove |
RemoveFromSCC | Run |
UndoCheckOut |
通过服务程序集合可以直接访问一个服务程序,并管理项目中的服务程序。从项目中连编一个包含自动服务程序的 .dll 动态链接库或 .exe 可执行文件时,将向服务程序集合中添加服务程序对象。有关创建自动服务程序的详细内容,请参阅《程序员指南》第十六章的“创建自动服务程序”。
服务程序集合有下列属性和方法程序∶
属性 | |
Count |
方法程序 | |
Item |
通过服务程序对象可以确定项目中包含的自动服务程序的信息(包括类型库的信息)。在“项目信息”对话框的“服务程序”选项卡也可以得到这些信息。请注意,只有连编了包含 OLEPUBLIC 类(在 DEFINE CLASS 命令中指定)的项目之后,才能创建服务程序对象。
服务程序对象有下列属性和方法程序∶
属性 | |
CLSID | Description |
HelpContextID | Instancing |
ProgID | ServerClass |
ServerClassLibrary |
Visual FoxPro Project 对象提供了一个 IDispatch 接口,自动服务客户程序、ActiveX 控件和其他 COM 对象可以通过标准的 OLE 接口访问 Project 对象。由于 Project 对象现有了 IDispatch 接口,对项目进行管理时产生的错误都是 OLE 错误。
在 CREATE PROJECT 和 MODIFY PROJECT 命令中增加了两个新子句。第一个子句 NOPROJECTHOOK 将阻止为项目实例化 ProjectHook 对象;第二个子句 NOSHOW 将打开一个项目,但不在项目管理器中显示;并可通过编程来管理项目,并且不显示该项目。可以在晚些时候使用 Visible 属性来显示项目管理器。有关这些新子句的详细内容,请参阅 CREATE PROJECT 和 MODIFY PROJECT。
下列的内容描述创建、修改、关闭、连编项目等操作时发生的事件,以及发生顺序。
执行 CREATE PROJECT 命令、从“文件”菜单中创建新项目、或单击“新建”工具栏按钮并且指定创建新项目时将发生下列事件∶
如果 Init 事件返回值为假 (.F.),将不创建项目,并释放 ProjectHook 对象,项目管理器将不显示。
执行 MODIFY PROJECT 命令、从“文件”菜单中修改一个现有的项目、或单击“打开”工具栏按钮并且指定一个现有或新项目时发生下列事件∶
如果 Init 事件返回值为假 (.F.),则不打开该项目,并释放 Project 和 ProjectHook 对象,项目管理器将不显示。
关闭一个打开的项目时,会发生下列事件∶
发出 BUILD APP、BUILD DLL 或 BUILD EXE 命令时,将发生下列事件∶
如果在连编过程中向项目中添加文件,则在添加文件之前将发生 ProjectHook 的 QueryAddFile 事件。如果 QueryAddFile 事件中包含 NODEFAULT,将不向项目中添加文件。反之,则将该文件添加到项目中。成功地连编 .app、.dll 或 .exe 文件后,将发生 ProjectHook 的 AfterBuild 事件,然后发生 ProjectHook 的 Destroy 事件。
如果 Init 事件返回值为假 (.F.),则不连编 app、.dll 或 .exe 文件,并释放 Project 和 ProjectHook 对象。
发出带有 FROM 子句的 BUILD PROJECT 命令时,将发生下列事件。如果省略 FROM 子句,则按上述发出 BUILD APP、BUILD DLL 或 BUILD EXE 命令时的顺序发生事件。
然后将发生 ProjectHook 对象的 BeforeBuild 事件。如果 BeforeBuild 事件中包含 NODEFAULT,则不连编项目。反之,将连编该项目。连编完成后,将发生 ProjectHook 的 AfterBuild 事件,然后发生 ProjectHook 的 Destroy 事件。
如果 ProjectHook 的 Init 事件返回值为假 (.F.),则不连编该项目,并释放 Project 和 ProjectHook 对象,并且不创建新的 .pjx 文件。
将一个文件或一组文件拖动过项目管理器的大纲区域(树状视图)时,将发生下列事件∶
通过单击项目管理器中的“添加”按钮向项目中添加文件时,将发生下列事件∶
通过单击“项目管理器”中的“新建”按钮,向项目中添加新文件时,将发生下列事件∶
通过单击“项目管理器”中的“修改”按钮,修改项目中的一个文件时,将发生下列事件∶
通过单击项目管理器中的“移去”按钮,删除项目中的一个文件时,将发下列事件生∶
通过单击项目管理器中的“运行”按钮,执行项目中的一个文件时,将发生下列事件∶
通过单击项目管理器中的“连编”按钮,重新连编一个项目或者从项目中连编一个 .app、.dll 或 .exe 文件时,将发生下列事件∶
Visual FoxPro 的 Solutions 示例应用程序中包含一个名为“Track activities in a project”的示例,演示了许多新的项目管理器挂接程序。
若要运行 Solutions 示例应用程序
DO (HOME(2) + 'solution\solution')
-或-
若要运行“Track activities in a project”示例
使用“Track activities in a project”示例可以打开一个项目,然后可按任意方式管理该项目。对项目进行的任何更改都保存在一个表中,关闭项目时,可以在浏览窗口中查看对该项目所进行的更改。
有关“Track activities in a project”示例工作原理的详细内容,可以打开创建示例的表单,来查看示例的代码。
若要打开“Track activities in a project”表单
用于创建“Track activities in a project”示例的表单,Acttrack.scx,将打开在表单设计器中。
另外,还需要详细了解 ProjectHook 的类库 Project_hook.vcx,该类库是在打开“Track activities in a project”示例时分配给项目的。项目事件发生时执行的大多数代码都在该类库的事件过程中。Project_hook.vcx 位于 ...\Samples\Vfp98\Solution\Tahoe 目录中。
下列向导和生成器是新增的或者是改进过的。
应用程序向导 新的
Visual FoxPro 6.0 的应用程序向导提供对改进了的应用程序框架和新的“应用程序生成器”的支持。从“组件管理库”中、或从 Visual FoxPro 的“工具”菜单中单击“向导”,然后单击“应用程序”,即可以运行“应用程序向导”。
注释 为了向后兼容,在“向导选取”对话框中有 Visual FoxPro 5.0 的“应用程序向导 (5.0)”。
连接向导 新的
连接向导包括“代码生成向导”和“反向工程向导”。使用这些向导可以轻松实现 Visual FoxPro 类库和 Microsoft Visual Modeler 模型之间的转换。
数据库向导 新的
Visual FoxPro 的数据库向导使用模板创建数据库和表。也可以使用向导创建索引、以及新数据库中表与表之间的关系。
文档向导 改进的
Visual FoxPro 的文档向导现提供一个选项,以使用“代码分析器”来创建文档。
表单向导 改进的
更新了的 Visual FoxPro 表单向导为保存在数据库中的特定字段提供输入掩码、格式和一个字段映射类。该向导还包含更多的表单样式选项,包括可滚动表单。
图形向导 改进的
Visual FoxPro 的图形向导可以使用 Microsoft Graph 从 Visual FoxPro 的表来创建图形。更新了的向导支持 Microsoft Office 97 的 Graph 8.0 组件,包括数据表的自动服务和 Series by Row/Col 选项。
导入向导 改进的
更新了的 Visual FoxPro 导入向导支持 Office 97 和 Microsoft Excel 的多数据表操作,并提供向数据库中导入表的选项。
标签向导 改进的
Visual FoxPro 的标签向导现可以更好地控制标签字体,并能直接访问“添加标签向导”。
邮件合并向导 改进的
Visual FoxPro 邮件合并向导可为 Microsoft Word 合并文档创建数据源,或创建一个其他字处理器能使用的文本文件。更新了的向导支持 Office 97 中的 Microsoft Word 8.0 组件和真正的 VBA 自动服务(具有 Application 对象和集合支持的)。
数据透视表向导 改进的
Visual FoxPro 数据透视表向导可以帮助创建交互的工作表,用来总结和分析一个表中的两个或更多字段中的数据。更新了的向导支持 Office 97 中的 Microsoft Word 8.0 组件,可以选择在 Excel 中直接保存一个数据透视表、或将其作为一个对象添加到表单中。
报表向导 改进的
Visual FoxPro 的报表向导现包含高级的分组和总结功能,因此可以在单个向导中定制报表。其中也有更多的报表样式可供选择。
远程视图向导 改进的
Visual FoxPro 的视图向导现提供了对 System 表的访问,这样可以使用支持这些表的 ODBC 驱动程序功能。
示例向导 新的
Visual FoxPro 示例向导提供了一些创建自己的向导的简单步骤。其输出为根据指定的数据源中的记录创建的 HTML 文件。
安装向导 改进的
Visual FoxPro 安装向导现提供对 ActiveX 控件的高级支持,并突破了 NT 安装时的 Windows 文件数限制。通过安装可以向应用程序添加外部的 .DLL 文件,并且创建基于 Web 的安装。
表向导 改进的
Visual FoxPro 表向导现提供了新的表模板、可选的样式设置、支持字符型(二进制)和备注型(二进制)数据类型,并且可以访问数据库。可以将表添加到一个数据库中,并且可使用数据库的设置来确定向表中添加的字段的格式。也可以建立数据库中表与表之间的关系。
Web 发布向导 新的
Visual FoxPro 的 Web 发布向导可以根据指定的数据源中的记录创建一个 HTML 文件。
Visual FoxPro 6.0 应用程序框架的作用是为了更容易的开发 Visual FoxPro 应用程序。可通过应用程序向导或“组件管理库”中的“新建应用程序”数据项访问改进了的应用程序框架。改进了的框架支持 Visual FoxPro 5.0 中可用的框架,包括∶
Visual FoxPro 6.0 的框架使用一个改进了的 Application 对象,并且提供下列附加元素∶
在 Visual FoxPro 的“工具”菜单或“组件管理库”,可启动应用程序生成器。
若要从“工具”菜单中启动“应用程序生成器”
若要从“组件管理库”启动“应用程序生成器”
如果选择“确定”,生成器将关闭,并应用所有选项卡中的属性设置。
在项目管理器窗口中单击鼠标右键,也可以启动应用程序生成器。但以这种方式启动时,应用程序生成器只为应用程序创建元表 — 在应用程序生成器中只有三个选项卡。唯一为应用程序提供全部改进了的应用程序框架的途径是“应用程序向导”、或者通过“组件管理库”的“新建应用程序”数据项。
有关目录及增强的应用程序框架和应用程序生成器的使用细节,请参阅“帮助”中的“使用应用程序框架开发应用程序”。
主包含文件
该 #INCLUDE 文件由带有设置和字符串的组件使用。文件也包含 APP_GLOBAL 值,即组件用于引用的名称。
配置文件
一个可选的 Config.fpw 文件,由诸如顶级表单等应用程序使用,以实现 SCREEN=OFF 这样的设置。
项目挂接类
控制与项目有关的事件,例如添加新文件。也可以访问应用程序生成器,用以设置应用程序内交互的行为和属性。
应用程序元表
包含项目设置等信息,该信息由应用程序生成器和项目挂接程序来设置或使用。
应用程序生成器
向项目中添加组件和设置属性的工具,例如定位选项。
应用程序框架包含项目文件和一个初级的类库,该类库是 Visual FoxPro 基类的子类,同新建或现有的表和文档一起发布。
使用框架可以指定是否创建一个完整的应用程序,或只是创建一个应用程序框架。如果选择创建一个完整的应用程序,可在应用程序中包含已经创建了的数据库和表单或报表,也可使用数据库模板从零开始创建新的应用程序。如果选择创建一个框架,则可稍后向框架中添加组件。
可以使用“应用程序向导”或“组件管理库”的“新建应用程序”数据项,创建一个应用程序框架。在使用“组件管理库”时,新的项目文件夹数据项将被添加到“Favorites”文件夹。
不管使用什么方法程序,Visual FoxPro 都将显示“应用程序生成器”,此时,可以添加信息并将其保存在元表中。
若要创建应用程序
-或者-
有关目录及增强的应用程序框架和应用程序生成器的使用细节,请参阅“帮助”中的“使用应用程序框架开发应用程序”。
可使用“组件管理库”向新的应用程序框架中添加表单、报表、数据和服务对象,并向表单中添加控件。
使用“组件管理库”向应用程序添加表单时,可以根据现有的类创建新的表单或子类。