1、表单设计与应用8.1面向对象的概念考点1对象与类1对象( Object)客观世界里的任何实体都可以被视为对象。对象可以是具体事物,也可以指某些概念二(1)属性:用来表示对象的状态。(2)方法:用来描述对象的行为。2类( Class)类是对一类相似对象性质的描述。同类对象具有相同的性质:相同的属性及方法。考点2子类与继承1继承继承表达了一种从一般到特殊的进化过程。在面向对象的方法里,继承是指基于现有类的方法和属性。 2类 我们把新类称为现有类的子类,而把现有类称为新类的父类。一个子类的成员一般包括以下两个方面。(l)从其父类继承的成员,包括属性、方法。(2)由子类自己定义的成员,包括属性、方法。
2、8.2 Visual FoxPro基类简介考点3 Visual FoxPro基类Visual FoxPro中所有基类共有的属性如表8-1所示。表8-1 Visual FoxPro基类的最小属性集(l)在编程方式里,对象的生成通常使用CREATE OBJECT函数来完成,格式为:CREATE OBJECT(,)说明:函数基于指定的类生成一个对象,并返回对象的引用。(2)对象属性访问及对象方法调用的基本格式为: ()考点4容器与控件Visual FoxPro中的类一般可分为两种类型:容器类和控件类。相应地,可分别生成容器(对象)和控件(对象)。(l)控件:是一个可以以图形化的方式显示出来并能与用户
3、进行交互式的对象。(2)容器:可看成是一个特殊的控件,它能包容其他的控件或容器。(3)层次:容器内的包容关系形成r对象的嵌套层次关系。对象的层次概念与类的层次概念是两个完全不同的概念对象的层次关系指的是包容与被包容的关系,而类的层次指的是继承与被继承的关系。在对象的嵌套层次关系中,要引用其中的某个对象,需要指明对象在嵌套层次中的位置。对象引用的几个属性或关键字如表8-2所示。表8-2对象引用的几个属性或关键字考点5事件事件是一种由系统预先定义而由用户或系统发出的动作。它作用于对象,对象识别事件并做出相应的反应。与方法集可以无限扩展不同的是,事件集是固定的。用户不能定义新的事件。表8-3列出了V
4、isualFoxPro基类的最小事件集,不管哪个基类都包含这些事件。表8-3 Visual FoxPro基类的最小事件集8.3创建与管理表单考点6创建、修改及运行表单1使用表单向导创建表单调用表单向导的方法有多种,这里只做简单介绍。(l)在“项目管理器”窗口中,选择“文档”选项卡,选择其中的“表单”图标。(2)单击“新建”按钮,系统弹出“新建表单”对话框。(3)单击“表单向导”图标按钮,打开“向导选取”对话框。(4)从列表框中选择要使用的向导,然后单击“确定”按钮。2使用表单设计器创建表单可以使用以下3种方法中的任何一种调用表单设计器。(1)在项目管理器环境下调用。(2)菜单方式调用。(3)命
5、令方式调用。3修改已有的表单一个表单无论是通过任何途径创建的,都可以使用表单设计器进行编辑修改。我们可以通过项目或使用命令“MODIFY FORM”来打开表单设计器。4运行表单可以采用下列方法运行通过表单设计器创建的表单文件。(1)在项目管理器窗口中,选择要运行的表单,然后单击窗口里的“运行”按钮。(2)在表单设计器环境下,选择“表单”菜单中的“执行表单”命令,或单击标准工具栏上的“运行”按钮。(3)选择“程序”菜单中的“运行”命令,打开“运行”对话框,然后在对话框中指定要运行的表单文件并单击“运行”按钮。(4)在命令窗口中输入命令,格式为: DO FORMNAME WITH,LINKEDNO
6、SHOW考点7管理表单属性和方法可以向表单添加任意数量的新属性和新方法,并像引用表单的其他属性和方法一样引用它们。Visual FoxPro中表单的属性大约有100个,但绝大多数很少用到。表8-4列出了常用的一些表单属性,这些属性规定了表单的外观和行为。表8-4表单的常用属性1创建新属性向表单添加新属性的方法如F。(l)选择“表单”菜单中的“新建属性”命令,打开“新建属性”对话框,如图8-1所示。(2)在“名称”文本框中输入新属性的名称。(3)有选择地在“说明”列表框中输入新建属性的说明信息。图8-1 “新建属性”对话框2创建新方法向表单添加新方法的步骤如下(l)运行“表单”“新建方法程序”命
7、令,打开“新建方法程序”对话框,如图8-2所示。(2)在“名称”文本框中输入新方法名。(3)有选择地在“说明”列表框中输入新建方法的说明信息。图8-2“新建方法程序”对话框3编辑方法或事件代码在表单设计器中,编辑方法或事件代码的步骤如下。(1)选择“显示”菜单中的“代码”命令,打开代码编辑窗口,如图8-3所示。(2)从“对象”框中选择方法或事件所属的对象。(3)从“过程”框中指定需要编辑的方法或事件。(4)在编辑区输入或修改方法或事件的代码。图8-3代码编辑窗口考点8常用事件与方法下面将以表的形式简单介绍一下表单及控件常用的一些事件和方法,如表8-5所示。表8-5常用的一些属性和方法8.4表单
8、设计器考点9表单设计器环境表单设计器启动后,在Visual FoxPro的主窗口中出现“表单设计器”窗口、“属性”窗口、“表单控件”工具栏、“表单设计器”工具栏及“表单”菜单。1“表单设计器”窗口用户可视化地添加和修改控件的窗口。2“属性”窗口如图8-4所示,在“属性”窗口中包括对象框、属性设置框、方法和事件列表。用户可在此窗口中选择表取中的控件,并为表单设计属性、方法及事件。对于表单及控件的绝大多数属性,其数据类型是固定的。一般来说,要为属性设置一个字符型数值,可以在设置框中直接输入,不需要加定界符。“属性”窗口可以通过单击“表单设计器”工具栏中的“属性窗口”按钮或选择“显示”菜单中的“属性
9、环境”命令打开或关闭。图8-4“属性”窗口3“表单控件”工具栏如图8-5所示,利用“表单控件”工具栏可以方便地向表单添加控件。图8-5“表单控件”工具栏除了控件按钮外,“表单控件”工具栏还包含“选定对象”、“按钮锁定”、“生成器锁定”和“查看类”4个辅助按钮。4“表单设计器”工具栏“表单设计器”工具栏如图8-6所示,它可以通过“显示”菜单中的“工具栏”命令打开或关闭。图8-6“表单设计器”工具栏5“表单”菜单“表单”菜单中的命令主要用于创建、编辑表单或表单集,如为表单增加新的属性和方法等。考点10控件的操作与布局1控件的基本操作在表单设计器下,对表单上的控件可进行移动、改变大小、复制、删除等操
10、作。(l)选定控件。(2)移动控件(3)调整控件大小。(4)复制控件。(5)删除控件。2控件布局利用“布局”工具栏中的按钮,可以方便地调整表单窗口中被选控件的相对大小或位置。“布局”工具栏丁以通过单击“表单设计器”工具栏上的“布局工具栏”按钮或选择“显示”菜单中的“布局工具栏”命令打开或关闭。3设置Tab键次序当表单运行时,用户可以按Tab键选择表单中的控件,使焦点在控件间移动。控件的Tab键次序决定了选择控件的次序。Visual FoxPro提供了两种方式来设置Tab键次序:交互方式和列表方式。考点11数据环境1数据环境的常用属性常用的两个数据环境是AutoOpenTables和AutoCl
11、oseTables,其功能如下。(1) AutoOpenTables ;表示当运行或打开表单时,是否打开数据环境中的表和视图,默认值为逻辑真.T.)。(2)AutoCloseTables:表示当释放或关闭表单时,是否关闭由数据环境指定的表和视图,默认值为逻辑真(.T.)。2打开数据环境设计器可通过单击“表单设计器”工具栏中的“数据环境”按钮,也可以选择“显示”菜单中的“数据环境”命令打开或关闭“数据环境设计器”窗口。3向数据环境中添加表或视图(1)选择“数据环境”菜单中的“添加”命令,或用鼠标右键单击“数据环境设计器”窗口,然后在弹出的快捷菜单中选择“添加”命令,打开“添加表或视图”对话框。(
12、2)选择要添加的表或视图并单击“添加”按钮。如果单击“其他”按钮,将调出“打开”对话框,用户可以从中选择需要的表。4从数据环境中移去表或视图在数据环境设计器环境下,按下列方法从数据环境移去表或视图。(1)在“数据环境设计器”窗口中,单击选择要移去的表或视图。(2)选择“数据环境”菜单中的“移去”命令。也可以用鼠标右键单击要移去的表或视图,然后在弹出的快捷菜单中选择“移去”命令。当表从数据环境中移去时,与这个表有关的所有关系也将随之消失。5在数据环境中设置关系如果添加到数据环境的表之间具有在数据库中设置的永久关系,这些关系也会自动添加到数据环境中。如果表之间没有永久关系,可以根据需要在数据环境设
13、计器下为这些表设置关系。6在数据环境中编辑关系关系是数据环境中的对象,它有自己的属性、方法和事件。常用的关系属性如表8-6所示。表8-6常用的关系属性7向表单添加字段我们可以利用“表单控件”工具栏方便地将一个标准控件放置到表单上,也可以从“数据环境设计器”窗口、“项目管理器”窗口或“数据库设计器”窗口中直接将字段、表或视图拖入表单,系统将产生相应的控件并与字段相联系。8.5常用表单控件考点12标签(Label)控件标签的常用属性如下(1) Caption属性:指定标签的标题文本很多类控件都具有Caption属性。用户可以利用该属性为所创建的对象指定标题文本。(2) Alignment属性:指定
14、标题文本在控件中的显示对齐方式。该属性包括三个属性值0、1和2,分别代表左对齐、右对齐和中央对齐。考点13命令按钮(CommandButton)控件命令按钮的常用属性如下。(1)Default属性:该属性默认值为F.。当属性为T.时,可称为“确定”按钮,一个表单中只能包含一个“确定”按钮;在Windows中,当焦点不在命令按钮上时,按Enter键,系统将自动执行该命令按钮的Click事件代码、(2)Cancel属性:该属性默认值为F.。当属性为T.时,可称为“取消”按钮,在表单中,可通过Esc键执行该命令按钮中的Click事件代码一个表单中可有多个命令按钮的Cancel属性值为.T.。(3)
15、Enabled属性:指定表单或控件能否响应用户引发的事件。默认的属性值为.T.,即对象是有效的,当Enabled.F.时,只是用来显示只读的信息。(4)Visible属性:指定对象是可见还是隐藏。默认的属性值为.T.,即对象是可见的。考点14命令组(CommandGroup)控件命令组是包含一组命令按钮的容器控件,其常用属性如下。(1)ButtonCount属性:指定命令组中命令按钮的个数,默认的属性值为2。(2 ) Buttons属性:用于存取命令组中各按钮的数组。用户可以利用该数组为命令组中的命令按钮设置属性或调用其方法,属性数组下标的取值范围应该在1到ButtonCount属性值之间。(
16、3) Value属性:指定命令组当前的状态。该属性的类型可以是数值型,也可以是字符型。考点15文本框(TextBox)控件文本框的常用属性如下。(1 ) ControlSource属性:可利用该属性为文本框指定一个字段或内存变量,运行时,文本框中首先显示该变量的内容(2)Value属性:返回文本框的当前内容。该属性的默认值是空串。(3) PasswordChar属性:指定文本框控件内是显示用户输入的字符还是显示占位符。该属性的默认值是空串,此时没有占位符。当为属性指定一个占位符(例如*)后,文本框中只显示占位符。(4)InputMask属性:指定在一个文本框中如何输入和显示数据。各种模式符的功
17、能如表8-7所示。表8-7模式符及其功能考点16编辑框的常用属性如下。(1)AllowTabs属性:指定编辑框中能否使用Tab键。该属性的默认值为F.,当按Tab键时,焦点移出编辑框。(2)HideSelection属性:指定当编辑框失去焦点时,编辑框中选定的文本是否仍显示为选定状态。该属性的默认值为.T.,即当编辑框失去焦点时,编辑框中选定的文本不显示为选定状态(3) ReadOnly属性:指定用户能否编辑编辑框中的内容。如果该属性的默认值为.F.,则叮以编辑编辑框中的内容;当属性值为T.时,编辑框中的内容为只读。(4) ScrollBars属性:指定编辑框是否具有滚动条。该属性包括“0-无
18、” 和“2-垂直”两个属性值。(5)SelStart属性:返回用户在编辑框中所选文本的起始位置或插入点位置。属性的有效取值范围在0与编辑区中的字符总数之间。(6)SelLength属性:返回用户在控件的文本输入区中所选定字符的数目,或指定要选定的字符数目。(7)SelText属性:返回用户编辑区内选定的文本。如果没有选定文本,将返回空串。考点17复选框(CheckBox)控件复选框的常用属性如下。(1) Caption属性:用来指定显示在复选框旁边的文字。(2)Value属性:用来指明复选框的当前状态,共有3种情况:0或.F.表示未被选中;1或.T.表示被选扣;2或.NULL.表示不确定,只在
19、代码中有效。(3) ControlSource属性:指明与复选框建立联系的数据源。作为数据源的字段变量或内存变量,其类型可以是逻辑型或数值型。考点18选项组(OptionGroup)控件选项组是包含若干个选项按钮的一种容器控件,其常用属性如下。(1) ButtonCount属性:指定选项组中选项按钮的数目,其默认值为2,(2) Value属性:用于指定选项组中哪个选项按钮被选中。该属性值的类型可为数值k1J或字符型。(3 ) ControlSource属性:指明与选项组建立联系的数据源。作为数据源的字段变量或内存变量,其类型可以是字符型或数值型(4) Buttons属性:用于存取选项组中每个按
20、钮的数组,其含义与命令组的Buttons类似。考点19列表框(ListBox )控件 列表框的常用属性如下(1)RowSourceType属性与RowSource属性:RowSourceType属性指明列表框中的条目数据源的类型,RowSource属性指定列表框的条目数据源。RowSourceType属性共有10种取值范围:0-无(默认值)、1-值,2-别名、3-SQL语句,4-查询(. qpr),5-数组,6-字段,7-文件,8-结构,9-弹出式菜单。(2)List属性:用以存取列表框中数据条目的字符串数组。(3)ListCount属性:指明列表框中数据条目的数目。(4)ColumnCoun
21、t属性:指定列表框的列数。(5)Value属性:列表框中被选中的条目。该属性可以是数值型,也可以是字符型。(6)ControlSource属性:该属性在列表框中的用法和在其他控件中的用法有所不同。用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果。(7)Selected属性:指定列表框内的某个条目是否处于选定状态(8) MultiSelect属性:指定用户在列表框控件内进行多重选定。其中,0或.F.表示不允许多重选定,为系统默认值;1或.T.表示允许多重选定。考点20组合框(ComboBox)控件组合框与列表框类似,也是用于提供一组条目供用户从中选择,组合框的特点如下。(1)
22、对于组合框来说,通常只有一个条目是可见的。(2)组合框不提供多重选定的功能。(3)组合框可通过Style属性设置其形式,共有两种:0表示下拉组合框,2表示下拉列表框。考点21表格(Gride)控件表格是一种容器对象。一个表格对象由若十列对象组成,每个列对象包含一个标头对象和若干控件,它们都有自己的属性、事件和方法。1表格的常用属性(l)RecordSourceType属性与RecordSource属性:RecordSourceType属性指明表格数据源类型,RecordSource属性指定表格数据源。其中数据类型共有5种取值范围:0-表、1-别名(默认值)、2-提示、3-查询(.qpr)、4-
23、SQL语句。(2)ColumnCount属性:指定表格的列数,即一个表格对象所包含的列对象数目。(3) LinkMaster属性:用于指定表格控件中所显示的子表的父表名称。(4)ChildOrder属性:用于指定建立一对多的关联关系,子表所要用到的索引。该属性类似于SET ORDER命令。(5)RelationalExpr属性:确定基于主表字段的关联表达式。2常用的列属性(1) ControlSource属性:指定要在列中显示的数据源,常见的是表中的一个字段。(2) CurrentControl属性:指定列对象中的一个控件,该控件用以显示和接收列中活动单元格的数据。(3 ) Sparse属性:
24、用于确定CurrentControl属性是影响列中的所有单元格还是影响活动单元格。3常用的标头(Header)属性(1 ) Caption属性:指定标头对象的标题文本,显示于列顶部。(2) Alignment属性:指定标题文本在对象中显示的对齐方式。考点22页框(PageFrame)控件页框是包含页面(Page)的容器对象,其常用属性如下。(1) PageCount属性:用于指明一个页框对象所包含的页对象的数量。最小值为0,最大值为99。(2) Pages属性:该属性是一个数组,用于存取页框中的某个页对象。(3 ) Tabs属性:指定页框中是否显示页面标签栏。(4) TabStretch属性:
25、如果页面标题文本太长,可通过设置该属性利用多行显示。其中0表示多重行,1表示单行(默认值)。(5)ActivePage属性:返回页框中活动页的页号,或使页框中的指定页成为活动的。9.1Visual FoxPro系统菜单考点1菜单结构Visual FoxPro支持两种类型的菜单:条形菜单和弹出式菜单。菜单项的名称显示于屏幕供用户识别,菜单及菜单项的内部名称或选项序号则用于在代码中引用。每一个菜单项都可以选择设置一个热键和一个快捷键。无论哪种类型的菜单,当选择某个选项时都会有一定的动作,这个动作可以是下列3种情况之一:执行一条命令、执行一个过程或激活另一个菜单。考点2系统菜单Visual FoxP
26、ro系统菜单是一个典型的菜单系统,其主菜单是一个条形菜单。条形菜单的内部名字为_MSYSMENU,也可看做是整个菜单系统的名字。条形菜单中常见选项的名称及内部名字如表9-1所示,各弹出式菜单的内部名字如表9-2所示。表9-3的是“编辑”菜单中常用选项的选项名称和内部名字。表9-1主菜单(MSYSMENU)常见选项表9-2弹出式菜单的内部名字表9-3“编辑”菜单(_MEDIT)常用选项通过SET SYSMENU命令可以允许或禁止在程序执行时访问系统菜单,也可以重新配置系统菜单,格式如下。 SET SYSMENU ON|OFF AUTOMATIC |TO |TO |TODEFAULT|SAVE|N
27、OSAVE小提示:如不带任何参数,直接SET SYSMENU TO命令,将屏蔽系统菜单,使系统菜单不可用。9.2下拉式菜单设计考点3菜单设计的基本过程用菜单设计器设计下拉式菜单的基本过程如下。(l)调用菜单设计器。(2)在“菜单设计器”窗口中定义菜单,指定菜单的各项内容,定义完成后,通过菜单命令“保存”或直接使用快捷键Ctrl+W保存菜单。(3)通过菜单命令“菜单”*“生成”命令,产生可执行的菜单程序文件(MPR)。(4)在命令窗口中,使用DO命令执行菜单文件,此处的文件扩展名MPR不能默认。 菜单设计的基本流程如图9-1所示。图9-1菜单设计的基本流程图考点4定义菜单1“菜单设计器”窗口“菜
28、单设计器”窗口每页显示和定义一个菜单,可以是条形菜单(菜单栏),也可以是弹出式菜单(子菜单)。“菜单设计器”窗口打开时,首先显示和定义的是条形菜单,即主菜单名。窗口的左边是一个列表框,其中每一行定义当前菜单的一个菜单项,包括“菜单名称”、“结果”和“选项”3列内容(如图9-2所示)。(1)“菜单名称”列。(2)“结果”列。(3)“选项”列。2“显示”菜单在菜单设计一器环境下,系统“显示”菜单会出现两条命令。(1)“常规选项”对话框。(2)“菜单选项”对话框。图9-2“菜单设计器”窗口考点5用编程方式定义菜单无论是条形菜单还是弹出式菜单,都可以通过命令进行定义和设计。此处介绍几种有关菜单定义的简单命令。(1)条形菜单定义。(2)弹出式菜单定义。考点6为顶层表单添加菜单为顶层表单添加下拉式菜单的方法和过程如下。(1)在“菜单设计器”窗口中设计好下拉式菜单。(2)打开“常规选项”对话框,选中对话框右下角的“顶层表单”复选框。(3)将表单的ShowWindow属性设置为2,使之成为顶层表单。(4)在表单的Init事件中添加调用菜单的程序代码: DOWITH This,“”此处的是指被调用的菜单程序文件(MPR),是为被添加的下拉式菜单的条形菜单指定的一个内部名字。(5)在表单
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1