Foxpro进一步订制VFP地导航和生成器计算机二级考试

文章作者 100test 发表时间 2009:07:25 10:45:47
来源 100Test.Com百考试题网


  作为最好的数据库管理系统,VFP 给我们提供了高度的可自定义的交互式的开发环境(interactive development environment IDE)。你可以修改菜单,安装新的生成器和向导,实现开发工具条,修改项目管理器的行为,以及很多其它事来使你的IDE 更高效。这些定制甚至比我们所知道的和喜欢的VFP语言更好,连相对不熟炼的VFP 开发者都可以按他们自己的方法定制开发环境。
  本节将配合实际程序示例,向你展示如何建立简单的工具增加你和你的开发组的效率。我们将着眼于修改VFP 的向导和生成器来提供额外的或自定义功能,并使用VFP 6中的BuilderD 技术创建你自己的生成器。
  修改VFP 的向导和生成器
  如果你象我一样,你可能不常用VFP 的生成器和向导,因为它们不完全能满足你的需要。可能它们不具备足够的灵活性或可能你只是不喜欢他们的工作方式。直到VFP 6以前,没有办法改变生成器和向导的行为,因为Microsoft 没有提供源代码。但是,现在我们不但获得了生成器和向导的源代码,也获得了类浏览器,组件管理器的源代码。
  生成器和向导的源代码可以在VFP主目录下的TOOLSXSOURCE目录中的XSOURCE.ZIP 文件中找到。当你解压该文件时,它建立一个VFPSOURCE 目录,其中包含了所有的源代码。向导的源代码 可以在WIZARDS 目录下找到,生成器的在BUILDERS目录下 (虽然一些WIZARDS目录中的公共文件也被生成器使用)。
  因此,现在我们有了源代码,我们可个按我们的需要来修改生成器和向导,对吗? 好了,一个较好的办法是建立新的生成器和向导时,使用源代码中的大多数类和程序,但以派生子类并复制和修改PRGs 或建立封装PRGs的方法来忽略他们原有的行为。本文将详细说明如何对各生成器和向导这样做。
  一但你建立了你自己的生成器和向导,怎样告诉VFP 使用你的而不是原来的吗? 生成器是注册在BUILDER.DBF 且向导是在WIZARD.DBF中,两个表都在VFP主目录下的WIZARDS 子目录中。这些表具有相同的结构,如下表所示。
  字段 描述 NAME 生成器或向导描述名。 DESCRIPT 生成器或向导的说明。 B99vMAP 未使用。 TYPE 生成器或向导是对哪一对象类型的。在 BUILDER.DBF 情况下,它一般是一个对象的基类 ( 虽然已有以 MULTISELECT , AUTOFORMAT 和 RI 字段 ) 。对于 WIZARDS.DBF ,它可能是 FORM , REPORT ,和 QUERY 。 PROGRAM 包含生成器和向导的 APP 文件名。 CLASSLIB APP 文件中要实例的类。 CLASSNAME APP 文件中的主要类的类库。 PARMS 传递到生成器或向导的参数。
  当你调用一个生成器时,VFP 调用_BUILDER 系统变量中指定的程序 (默认是BUILDER.APP)。BUILDER.APP 查看它所在的环境 (例如,生成器是被那一个对象调用),在BUILDER.DBF 表中查找与环境匹配的记录 (例如,在TYPE 字段中查找对象的基类),并调用注册后的生成器。除系统变量_WIZARD外,向导也是以相同的方法处理,_WIZARD是用于指向可在WIZARD.DBF找到的WIZARD.APP。
  要告诉VFP 使用一个不同的生成器或向导,插入一条说明如何运行你的生成器或向导的新记录到BUILDER.DBF或 WIZARD.DBF表中。如果你想在运行新的向导或生成器的同时也可以选择运行原有的生成器或向导,在WIZARD.DBF表中保留原有的生成器或向导记录。如果你想替换原有的,简单的修改它的TYPE值为另外的值(我使用一个"X"前缀,如 "XGRID"),而不是删除该记录.
  使用该方法,你可以简单的以恢复TYPE 的值来恢复使用原来的生成器或向导。 我们将考查创建一个Grid 生成器的替代物,参照完整性生成器,Upsizing 向导,和WWW 搜索页向导。
  创建更有用的Grid 生成器
  VFP Grid 生成器提供了一种快速方法来整合grid 的列并建立你所希望的视觉外观。但是,关于该生成器,有我所不喜欢的一些东西:
  它不会自动调整列的宽度。必须自己调整列的宽度以适应数据宽度的需要。
  在生成器的外观页面中的控件类型组合框只列出了已存在于列中的VFP 基类和类. 没有办法添加你自己的类到该列表中。
  它创建的列和列头是VFP 的基类。你也许想用你自己的类替代它(必须是以编程的方式定义的),例如,单击一个列头而按该列排序。
  要建立一个VFP Grid 生成器的替代物,首先建立了SFGRIDBLDR 项目(它在你解压该文档所附的示例程序时建立的GRID 子目录中) 并添加以下文件: BUILDER.VCX (在VFP 向导源目录中的BUILDERSBUILDERS 子目录中),GRIDBLDR.VCX (在 BUILDERSGRIDBLDR 目录中),THERM.VCX,WIZCTRL.VCX,WIZMOVER.VCX (所有都在WIZARDSWZCOMMON目录中),DUMMY.PRG,和 WBGRID.PRG (在BUILDERS目录中)。我如何知道要添加那些文件到项目中呢? 这很简单:只需要查看GRIDBLDR 项目的内容。
  其次,派生GridBuilder 类到SFGridBuilder 。

相关文章


VisualFoxpro宏替换地运用计算机二级考试
VisualFoxpro配置文件计算机二级考试
利用VFP在INTERNET上制作数据库动态查询计算机二级考试
计算机二级:修改VisualFoxPro类库实现按标计算机二级考试
Foxpro进一步订制VFP地导航和生成器计算机二级考试
计算机二级Foxpro:在VFP中模拟动画计算机二级考试
VF编写简易计算器计算机二级考试
vf编程计算3!+4!+5!计算机二级考试
VFP中常用WIN32API函数调用事例计算机二级考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛