分享

VFP 基本类的使用指南

 悟静 2009-06-12

Visual FoxPro 的 .vcx 可视类库位于 \Ffc\ 文件夹,包含了各种基本类,使用这些基本类可以不通过编程或较少的编程即能改进 Visual FoxPro 应用程序。用户可以自由地将基本类和其应用程序一起发布。这些基本类包含在“组件管理库”中。“组件管理库”提供了了解每个基本类的属性、事件和方法程序的快速和简便方法。

也可以在“类设计器”或“类浏览器”中打开一个基本类,查看其结构和代码。这是一种极好的方法,不但可以更深入理解 Visual FoxPro 编程,还可以理解基本类的工作机理。

以下内容可指导用户如何将 Visual FoxPro 基本类添加到应用程序中。

类的类型

在将一个基本类添加到应用程序之前,用户需要了解该基本类的 Visual FoxPro 基类。某些基本类只能在表单上用作可视对象,而其他基本类是非可视的,可以通过编程运行,而不必放在表单上。Visual FoxPro 基本类文档描述了每个基本类的基类,用户可以用来确定某个基本类是否可以添加到表单上、或在应用程序中通过编程运行。请注意,在“组件管理库”中,可以在一个基本类上单击鼠标右键来显示一个快捷菜单,然后从快捷菜单中选取“属性”命令,并选取“类”选项卡显示这个基类。

下表列出了 Visual FoxPro 的基类,并说明如何将其添加到用户应用程序中。

种类 A –可以放落到表单上的基类。 种类 B –可以放落到表单上或在应用程序中通过编程运行的基类。 种类 C – 只能在应用程序中通过编程运行的基类
Checkbox Custom Form
Combobox Container Formset
命令button Timer Toolbar
命令group ProjectHook  
Editbox ActiveDoc  
Grid    
Hyperlink    
Image    
Label    
Line    
Listbox    
OLE控件    
Optionbutton    
Optiongroup    
Shape    
Spinner    
Textbox    

 

将基本类添加到表单中

通常用户需要经常将基本类添加到表单中。可以从“组件管理库”、“类浏览器”、“项目管理器”和表单控件工具栏将基本类拖动到表单上。

注释 可以选中一个已经添加到表单上的基本类,然后从“工具”菜单中选择“类浏览器”命令来显示该基本类的详细信息。

组件管理库 – “组件管理库”提供了将基本类添加到表单的最简便的方法。对于种类为 A 和 B 的基类,用户可以从“组件管理库”拖动基本类,然后将其放落到表单上。在“组件管理库”中,也可以在一个基本类上单击鼠标右键显示一个快捷菜单,然后选择“添加至表单”命令,将该基本类添加到表单上。

有些基本类具有相关的生成器,这些生成器可自动启动并向用户提示该基本类的详细信息。

类浏览器 – 用户可以使用浏览器左上角的拖动图标,将对应于 A 和 B 基类的基本类从“类浏览器”拖动到表单上。方法是:在“类浏览器”中选中一个基本类,并在浏览器左上角单击该基本类的图标,然后将该图标拖动到表单上;在表单上,在该基本类出现的地方释放鼠标按钮。

从“类浏览器”中将基本类拖动到表单上,将不启动相关的生成器。但可以在将基本类拖动到表单上后,启动生成器。方法是:选中表单上的基本类,单击鼠标右键显示快捷菜单,从快捷菜单上选取“生成器”命令启动生成器。

项目管理器 – 可以从“项目管理器”拖动对应于种类 A 和 B 基类的基本类,并将其放落到表单上。

从“项目管理器”中将基本类拖动到表单上,将不启动相关的生成器。但可以在将基本类拖动到表单上后,启动生成器。方法是:选中基本类,单击鼠标右键显示快捷菜单,从快捷菜单上选取“生成器”命令启动生成器。

表单控件工具栏 – 添加到表单控件工具栏上的对应于种类 A 和 B 基类的基本类,可以从工具栏添加到表单上。

如果没有启用“生成器锁定”,从表单控件工具栏放落基本类可能会启动相关的生成器。如果启用“生成器锁定”,则可在将基本类添加到表单上后启动生成器。方法是:选中基本类,单击鼠标右键显示快捷菜单,从快捷菜单上选取“生成器”命令启动生成器。

将基本类添加到项目中

在将包含基本类的表单添加到 Visual FoxPro 项目中时,“项目管理器”自动地将包含该基本类的可视类库添加到项目中。但有时需要人工地将基本类添加到项目中,如当用户应用程序需运行种类 C 对应的基本类时,必须人工地将基本类添加到项目中。

可以使用下列方法之一将 Visual FoxPro 基本类添加到项目中:

  • 从“组件管理库”拖动包含该类的项

     
  • 在 Windows“资源管理器”中拖动类库文件(.vcx)。

     
  • 在“项目管理器”中选取“添加”按钮

从“组件管理库”添加基本类

可以从“组件管理库”将基本类拖动到该项目中、或在“组件管理库”中,在基本类上单击鼠标右键显示快捷菜单,然后选择“添加至项目”命令,实现将基本类添加到项目中。在将基本类添加到项目中时,将显示“向项目添加类”对话框,有下列选项:

向项目添加类

选择本选项可以将基本类及其 .vcx 类库添加到项目中。对于放落到表单上的类(种类 A 和 B),这些操作将自动完成。对于种类 B 和 C 的某些类,如果打算在应用程序中通过编程对其进行调用,需要选择本选项。

从选定的类创建新类

选择本选项可以根据希望添加到项目的基本类创建一个新的子类。通常情况下,通过添加附加的程序代码,可以改进原始基本类的功能。

从选定的类创建新表单

对于基类是 Form 的基本类(如,_dialogs.vcx 中的基本类),可以选择本选项来根据基本类创建一个新的表单,改进初始基本类的功能。

从 Windows“资源管理器”添加基本类

可以使用 Windows“资源管理器”来访问将要添加到项目中的类。

若要使用 Windows“资源管理器”添加基本类

  • 从 Windows“资源管理器”中选中包含该类的类库文件(.vcx),并将其添加到“项目管理器”中。

该可视类库将被添加到“项目管理器”的“类库”数据项中。

在“项目管理器”中添加基本类

在“项目管理器”中,可以使用“添加”按钮将类添加到项目中。

若要在“项目管理器”中添加基本类

  1. 在“项目管理器”中,选择“类”选项卡。

     
  2. 单击“添加”按钮。

     
  3. 选取 \Ffc\ 文件夹中包含需要添加到项目中的基本类的类库。

     
  4. 单击“确定”按钮。

将类合并到应用程序中

在很多情况下,无须通过额外的编程,基本类和应用程序即可一起工作。但对于某些基本类(对于种类 B 和种类 C 中的非可视基类),可能需要提供附加的程序代码。

非可视基本类

例如,基本类经常为基于种类 B 的 Custom 类,这些基本类需要附加的编程。这些非可视类经常用来完成一些公用任务,如检查 Windows 注册表中的信息、处理环境设置、管理应用程序错误以及利用其他应用程序的自动服务(如使用 Microsoft Word 进行邮件合并)等。

可以将这些非可视类放落到表单上,但除此之外,还需要做一些额外的工作,才能使基本类和应用程序一起工作。在某些情况下,在将基本类放落到表单上时,将启动生成器。

下面的示例演示了如何在应用程序中使用非可视基本类的程序代码:

  1. 从“组件管理库”中将文件版本(File Version)基本类(Foundation classes\Utilities 文件夹)拖放到一个表单上。

     
  2. 将一个命令按钮添加到表单上,并将下列代码添加到 Click 事件中:
    WITH THISFORM._FILEVERSION1
        .cFileName = HOME( )+ 'VFP6.EXE'
        .GetVersion( )
        .DisplayVersion( )
        ENDWITH
        
  3. 运行表单,并单击命令按钮。

可以将一个非可视类合并到应用程序中,而不必将其放落到表单上,但必须将其包含在用于创建应用程序的项目中。下列代码演示了如何运行相同的“文件版本”基本类,但不将该类放落到表单上。

LOCAL oFileVersion
oFileVersion = NewObject(_fileversion, _utilities.vcx)
WITH oFileVersion
.cFileName = HOME( )+ 'VFP6.EXE'
.GetVersion( )
.DisplayVersion( )
ENDWITH

注释 本示例假设这段代码可以定位 _utilities.vcx 类库,或这段代码位于一个连编时包含 _utilities.vcx 的 .app 文件中。

在使用非可视基本类时,用户需要了解如何以及何时在应用程序中使用该类,以便正确地设置其范围。如果只有一个表单使用该类,只需将其拖动到对应的表单上。但是,如果有很多表单使用该类,或者由应用程序全域使用,则该基本类在应用程序中应该有一个全域范围,以便在整个应用程序中都可以对其进行访问。此外,全域范围也可能提高性能。

可视基本类

也可以通过编程向应用程序中添加可视基本类,例如基类是表单的基本类。下列的示例为一段代码,可以添加到应用程序中,显示一个“关于框”对话框(Aboutbox dialog)

LOCAL oAbout
oAbout = NewObject(_aboutbox,_dialogs.vcx)
oAbout.Show( )

用户可以为每个应用程序创建“对话框”基本类的子类,这样可以定制应用程序对话框中的内容。下面示例演示了如何创建 Aboutbox 基本类的子类:

  1. 从“组件管理库”中将 Aboutbox 类(Foundation classes\Utilities 文件夹)拖放到应用程序的项目中。

     
  2. 在“向项目添加类”的对话框中选取“从选定的类创建新表单”,并输入表单名。

     
  3. 更改应用程序新表单的 Caption 属性

     
  4. 保存并关闭表单。

     
  5. 将程序程序代码(DO FORM FormName)添加到运行该表单的过程中,例如“关于”菜单项的过程中。

    -或-

从“组件管理库”中将“运行表单”按钮(Run Form button)类(Foundation classes\Buttons 文件夹)拖放到表单上。启动生成器时,指定需要执行表单名。

如果使用 Visual FoxPro 6.0 的应用程序框架,应用程序生成器将自动管理表单( .scx 和 .vcx 表单类)的添加操作。新的应用程序向导或“组件管理库”的“新应用程序”数据项将在创建的项目中安装这个框架。应用程序生成器直接与该框架交互,使用户可以指定如何以及在何处启动表单。

通过使用一个由“应用程序向导”、“应用程序生成器”和“组件管理库”生成的框架,用户可以得到种类丰富的工具,只需少量的代码即可创建整个应用程序。

类的命名约定

Visual FoxPro 的基本类及其属性和方法程序使用下列命名约定。

类和类库

大多数基本类是 _base.vcx 可视类库中的类的子类,可以在 \Ffc\ 文件夹找到这些基本类。这些类的命名约定反映了所使用的基类,如在 _base.vcx 中 Custom 类的子类称为 _Custom。在 _base.vcx 中,在每个类名前都带有下划线( _ )。

有些类库不包含根据 _base.vcx 创建的子类,因为这些类与其他 Visual FoxPro 组件共享,如向导和生成器。这些类包含在没有下划线的类库中,例如 Registry.vcx。

法程序和属性

方法程序的名称经常基于其动作名,如 RunForm。如果名称包含几个单词,如 RunForm,则大写字母将反映这一点。属性名通常在前面有一个小写字母,用来反映特定属性的数据类型,如 cFileName 表明该属性是一个字符类型。另外,属性的默认值也设置为相应的数据类型,如逻辑型属性可以初始化为“假”(.F.),而数值型属性可以初始化为 0。

早期版本的 Visual FoxPro 类的属性不受这些属性命名约定的限制,并且保持原来的名称,以避免与引用这些属性的用户代码产生兼容性冲突。

改进或修改 FoxPro 基本类

用户可以改进或修改 Visual FoxPro 基本类,以满足应用程序的需要。但是,我们建议您不要修改基本类本身,因为基本类可能会周期性地更新,并带有新的功能。

创建基本类的子类

由于提供了源代码,这样用户可以创建任何基本类的子类,来覆盖或改进属性和方法程序。当特定的基本类在不同的应用程序中有不同的行为时,可以选择创建子类。

更新 _base.vcx

如果需要对 Visual FoxPro 基本类添加全域性的更改时,可以修改 _base.vcx。既然基本类是根据 _base.vcx 创建的子类,对该类库的更改将自动反映到基本类中。_base.vcx 中的所有类都提供了一组普通的方法程序和属性。但如果 _base.vcx 中的类不能向应用程序添加所需的行为时,可以更改这些类(这与建议不要更改的基本类不同)。

但是,如果需要从用户自定义的基类(而不是基于当前使用的 Visual FoxPro 基类)继承 _base.vcx 中类的行为,应该重新定义这些类,而不要更改 _base.vcx。如果已经有了一个基于 Visual FoxPro 基类的自定义类库,可以重新定义 _base.vcx 中的类,以便从自定义类中继承其行为。这样,当组件使用 _FoundationClasses 时,组件也将自定义类中继承行为。可使用类浏览器重新定义特定类的父类。

如果将整个 _base.vcx 中的类替换为用户自定义类,请确保类名必须相同,否则基本类将有丢失的链接。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多