一个 Project 对象。此项目可以用以下代码引用:
_VFP.ActiveProject
Project 对象拥有“项目信息”对话框中所有信息的相关属性,其中包括文件和服务程序的集合。
由于开发人员常希望与项目有关的各种事件进行交互,比如添加文件或进行连编,因此需要创建一个新类 (ProjectHook) 来支持这些事件的代码。
项目的 ProjectHook 类是可选的。如果象在“项目信息”对话框中指定的那样,把 ProjectHook 类指定给一个项目,那么此类就会在项目打开时实例化(这包括 BUILD APP 等命令),而在项目关闭
时被销毁。
问题 2-6: 如何在
列表框 (ListBox) 控件中添加复选框?
答案: 支持向 Visual FoxPro 内部的列表框控件添加复选框是一种较为普遍的要求。在新版的 Microsoft ActiveX ListView 控件及 Treeview 控件中已可以支持复选框。这些控件都包含在 Visual FoxPro 6.0 中(请参阅问题 2-7)。
问题 2-7: 我的 Visual FoxPro 5.0 表单中包含有 ListView 或 TreeView 控件,它们不继承其新版本中的最新功能(如支持复选框)。已发布的应用程序中,由于带有这些表单,而在最终用户的机器上出现表单 OLE 错误,因此无法正常工作。
答案: 在 6.0 版中,包含有以下 ActiveX 控件的文件,其名称已从 Comctl32.ocx 更改为 Mscomctl.ocx:
Microsoft ListView Control
Microsoft TreeView Control
Microsoft ImageList Control
Microsoft ProgressBar Control
Microsoft StatusBar Control
Microsoft Slider Control
Microsoft Tabstrip Control
Microsoft Toolbar Control
纵使 Visual FoxPro 6.0 更新成新的 Mscomctl.ocx 文件,带有这些控件的旧的 5.0 版表单将仍引用旧的文件,因为 ActiveX 控件是由其 OleClass 属性绑定的。旧 Comctl32.ocx 文件中的 ActiveX 控件为版本 1。例如,5.0 表单上 ListView 控件的 OleClass 属性将是:
COMCTL.ListViewCtrl.1
Mscomctl.ocx 文件中新的 ActiveX 控件为版本 2(或更高)。例如:
COMCTL.TreeViewCtrl.2
Visual FoxPro 不会自动升级控件,因此在发布应用程序时必须知道表单使用的是哪种版本的 ActiveX 控件。
问题 2-8: 是否可以在 Visual FoxPro 6.0 中创建用户自定义集合?
答案: Visual FoxPro 5.0 不直接支持创建类似于对象数组的集合。Form 对象的 Controls 属性就是一种集合。Visual FoxPro 6.0 支持 Access/Assign 方法程序,它们可以用于创建真正的用户自定义集合。在 Solutions 示例应用程序中有一个很好的相关示例。
问题 2-9: 为什么 Visual FoxPro 5.0 自动 服务程序无法与 Microsoft Transaction Server 或 Active Server Page 协同
工作?
答案: 6.0 版中做了一些服务程序的改进,包括支持套件模型线程以使服务程序的比例范围更佳,并使其在 Active Server Page 和 Transaction Server 中的运行更平滑。类型库的改进使 Visual Basic 等应用程序可以在命令完成清单(command completion dropdown)中看到属性和方法程序。
您可能在使用 Visual FoxPro 6.0 或 5.0 自动 服务程序与 Microsoft Transaction Server 2.0 时还碰到过远程进程调用错误。如果有这样的情况,请确认您至少有 Transaction Server 2.0 的 Service Pack 1 或更高的版本。
问题 2-10: 我希望使用 Visual FoxPro 6.0 编写 Internet 应用程序,在版本中有很多新特性可利用。我应该从哪里着手呢?
答案: Visual FoxPro 提供了众多的工具可以用于创建
Web 应用程序。
新的“Web 发布向导”和 GENHTML 特性都是优秀的工具,可用于生成各种形式的
HTML 以发布 Visual FoxPro 的数据。您可以根据自己的需要,选择生成静态和动态的 HTML。您甚至可以使