收藏 分享(赏)

第8章 VFP面向对象的程序设计与表单设计.ppt

上传人:dreamzhangning 文档编号:2195226 上传时间:2018-09-05 格式:PPT 页数:59 大小:1.11MB
下载 相关 举报
第8章 VFP面向对象的程序设计与表单设计.ppt_第1页
第1页 / 共59页
第8章 VFP面向对象的程序设计与表单设计.ppt_第2页
第2页 / 共59页
第8章 VFP面向对象的程序设计与表单设计.ppt_第3页
第3页 / 共59页
第8章 VFP面向对象的程序设计与表单设计.ppt_第4页
第4页 / 共59页
第8章 VFP面向对象的程序设计与表单设计.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、第8章 VFP面向对象的程序设计与表单设计,本章学习目标,通过本章学习,读者应该掌握以下内容 1、面向对象程序设计的基本概念 2、Visual FoxPro中的基类 3、表单的创建与管理 4、表单设计器 5、表单常用控件,8.1.1基本概念 1对象对象(Object)是具有某些特性的具体事物的抽象。 2对象的属性、事件和方法 (1)属性(Property)属性是一组用于描述对象的物理特征的值。 (2)事件(Event) 事件是由对象识别的一个动作,用户可以编写相应代码对此动作进行响应。 (3)方法(Method) 方法是与对象相关联的过程。,8.1 面向对象程序设计基础,3类类(Class)是

2、具有共同属性、共同操作性质的对象的集合。 类是对象的抽象描述,对象则是类的实例。类是抽象的,对象是具体的。 类可以划分为基类和子类,也叫根类和派生类。子类以其基类为起点,并可继承基类的特征。 4类的特性 (1)继承性 (2)封装性 (3)多态性,8.1.2面向对象程序设计基本方法,图8-1 对象和应用程序的关系,在进行面向对象程序设计时,首先要考虑的是如何创建对象,其次考虑对象的功能和可以进行的操作。其中应该包含以下几个要点: 希望用户能够达到反应用户意图的目标。 为实现这一目标,对象应具备的环境、状态、条件(数据环境)。 以这一目标为中心,对象应该具有的可以实施的功能及配套参数。 作为一个完

3、备的整体所应配备的最佳结构体系。 为用户使用方便提供最佳接口、交互式操作界面。,8.1.3Visual FoxPro中的类 1基类基类是Visual FoxPro预先定义好的类。基类又可以分为容器类和控件类。(1)容器类:容器类可以容纳别的对象,并允许访问所包含的对象,如表单,自身是一个对象,又可以把按钮、编辑框、文本框等放在表单中。(2)控件类:不能容纳其他对象,如一个编辑框(Edit Box),在编辑框中就不能包含其他对象。控件类生成的对象不能单独使用和修改,而只能作为容器类中的一员,通过容器类创造的对象进行修改或访问。,2子类 以某个类(父类)为起点创建的新类称为子类,例如从基类派生新类

4、时,基类为父类,派生的新类为子类。 3用户自定义类 用户从基类派生出子类,并修改或添加子类属性、方法,这样的子类称为用户自定义类。 在面向对象程序设计中,创建并设计合适的子类,修改、增加属性,编写、修改事件代码和方法代码,是程序设计的重要内容,也是提高代码通用性、减少代码的重要手段。 4.类库 类库可用来存储以可视化方法设计的类,其扩展名为.VCX,一个类库可包含多个子类,且这些子类可以是由不同的基类派生的。,8.1.4 属性 Visual FoxPro中对象的属性根据其特点可划分为: (1)与操作方式、功能、效果有关的属性。 (2)与对象的引用有关的属性。 (3)与运行、操作条件有关的属性。

5、 (4)与对象可视性有关的属性。 (5)与数据、信息有关的属性。,8.1.5事件事件是对象可以识别和响应的行为和动作。事件是预先定义的动作,由用户或系统激活。当事件发生时,相对应的方法程序代码将被执行。 在Visual FoxPro中,对象可以响应50多种事件,主要事件种类有: (1) 与鼠标操作有关的事件。 (2) 与键盘操作有关的事件。 (3) 与对象内容改变有关的事件。 (4) 与表单有关的事件。 (5) 其他事件。,8.1.6方法程序 方法是对象所能执行的操作,是与对象相关的过程,方法程序是对象能够执行的、完成相应任务的操作命令代码的集合。方法与事件有着密切的联系,一个事件必定有一个与

6、之相对应的方法。用户动作激活(产生)事件,对事件的响应则通过对应的方法实现,如为了响应Click事件,用户可以为Click事件编写相对应的方法程序。有时,响应一个事件甚至可以调用多种方法。 8.1.7数据环境 数据环境中能够包含与表单有联系的全部表、视图以及表之间的关系。通常情况下,数据环境中的表或视图会随着表单的打开或运行而打开,并随着表单的关闭或释放而关闭,可以用数据环境设计器来设置表单的数据环境。,8.1.8对象的操作 1引用容器类对象 (1)绝对引用 绝对引用某一对象时,必须指明与该对象关联的所有容器类对象,例如,使表单MYFORM1中的命令按钮COMMANDl的CAPTION变为“隐

7、藏”: MYFORM1.COMMAND1.CAPTION=“隐藏” (2)相对引用 对上述例子的另一种引用方式为: THISFORM.COMMAND1.CAPTION=“隐藏” 当编辑的正是对象COMMANDl的方法程序时,甚至可以直接写为: THIS.CAPTION=“隐藏”,相对引用方式下,需要使用一些关键字来标识出操作对象,下面列出了这些关键字的含义。关键字 含 义 PARENT 对象的上一层包容对象 THIS 本对象 THISFORM 包含该对象的表单 THISFORMSET 包含该对象的表单集,2设置对象的属性值在Visual FoxPro中,一个对象的属性可以在设计时通过属性窗口设

8、置,也可以在运行中设置或修改,为了引用一个属性,需使用如下格式: PARENT.OBJECT.PROPERTY=VALUE 3调用对象方法对象创建之后,就可以从应用程序的任何位置调用该对象中的方法,调用对象中的方法的格式:PARENT.OBJECT.METHOD,8.1.9设计类与对象 1使用类设计器创建类在类设计器中,新类的属性、事件和方法主要通过属性窗口进行设计、定义和修改。新建的子类继承父类所有的属性、方法,子类又可以对父类的属性和方法进行修改、扩充,使之具有与父类不同的特殊性。 有三种方法可以进入“新建类”对话框: 项目管理器中新建类; 从文件菜单中新建类; 直接在命令窗口键入CREA

9、TE CLASS命令。 【例8-1】创建一个带有确认功能的“退出”命令按钮自定义类。,2在表单设计器中使用自定义类创建对象 在表单设计器中创建对象的方法是:选取表单控件工具栏上控件按钮,在表单的适当位置上单击即可。 使用自定义类创建对象时,需要先将自定义类以图标的形式添加到表单控件工具栏中,使自定义类可以像表单控件工具栏中的其他按钮一样使用。 【例8-2】创建一个只有退出命令按钮对象的表单。,8.2表单设计基础,8.2.1表单简介 表单是Visual FoxPro常用的具有自己的控件、属性、方法程序和数据环境的容器对象。 1表单控件 表单中使用的控件是提供给用户的基于标准化图形界面的多功能、多

10、任务的操作工具。它的主要用途是显示并可输入输出数据,完成某种具有特定功能的操作,构成用户和计算机相互沟通的屏幕界面。 2表单属性表单的属性用于定义表单及其控件的性质、特征,每个表单及其控件都有它的一组属性,通常这些属性的大多数都是相同的。表单及控件的属性可以通过属性窗口在设计时设置,也可通过编写代码在表单运行时设置。,3表单事件 表单的事件是表单及其控件可以识别和响应的行为和动作。 Init 当对象创建时 GotFocus 对象接收到焦点 Load 在创建对象之前 LostFocus 对象失去焦点 Unload 释放对象时 KeyPress 当用户按下或释放一个键 Destroy 当对象从内存

11、中释放时 MouseDown 当用户按下鼠标键 Click 用户鼠标单击对象 MouseMove 当用户移动鼠标到对象 DblClick 用户鼠标双击对象 MouseUp 当用户释放鼠标 RightClick 用户鼠标右击对象 Error 当发生错误时,4表单方法程序 表单的方法程序是对象能够执行的、完成相应任务的操作命令代码的集合,是Visual FoxPro为表单及其控件内定的通用过程。 AddObject 在表单对象中增加一个对象 Move 移动一个对象 Box 在表单对象上画一个矩形 Print 在表单对象上打印一个字符串 Circle 在表单对象上画一段圆弧或一个圆 Pset 给表单

12、上的一个点设置一个指定的颜色 Cls 清除一个表单中的图形和文本 Refresh 重新绘制表单或控件,并更新所有值 Clear 清除控件中的内容 Release 从内存中释放表单或表单集 Draw 重新绘制表单对象 SaveAs 将对象存入SCX文件中 Hide 隐藏表单、表单集或控件 Show 显示表单并确定该表单是模式还是非模式 Line 在表单对象上绘制一条线,5表单数据环境 在表单的数据环境中,可以添加与表单相关的数据表或视图,并设置好表单、控件与数据表或视图中字段的关联,形成一个完整的数据体系。下面给出了常用的数据环境属性和与表单及控件的数据源相关的属性。 AutoOpenTable

13、s:控制当运行表单时,是否打开数据环境的表或视图 AutoCloseTables:控制当释放表单或表单集时,是否关闭表或视图 InitialSelectedAlias:当运行表单时,选定的表或视图 Filter:排除不满足条件的记录 ControlSource:指定与文本框、编辑框、列表框、组合框及表格中的一列等对象建立联系的数据源(字段) CursorSource:指定与临时表相关的表或视图的名称RecordSource :指定与表格控件建立联系的数据源(表或视图) RecordSourceType:指定与表格控件建立联系的数据源打开的方式 RowSource:指定组合框或列表框的数据源,表

14、单的设计过程可以通过以下几个步骤实现:创建表单。为表单添加控件。设置表单的控件属性。选择与控件相适应的事件。为事件配制方法程序。设置数据环境。 在Visual FoxPro中,可以用下列方法生成表单:使用“表单向导”。通过“表单”菜单上的“快速表单”选项。使用“表单设计器”。使用命令:CREATE FORM 。,8.2.2表单向导Visual FoxPro提供了两种表单向导来创建表单 1表单向导 调用表单向导有3种方法: (1)在Visual FoxPro的项目管理器的“文档”选项卡中选中“表单”,单击“新建”按钮,在弹出的“新建表单”对话框中单击“表单向导”。 (2)选择“文件”菜单下“新建

15、”子菜单,在打开的“新建”对话框中,选中“表单”单选按钮,单击“向导”按钮。 (3)选择“工具”菜单下“向导”子菜单下的“表单”三级子菜单。 采用上述3种方法中的任意一种,都会打开“向导选取”对话框,在此对话框中选择“表单向导”,单击“确定”按钮,即可进入表单向导。 【例8-3】 用“表单向导”建立学生基本情况表单。,2用向导建立一对多表单 在具体设计之前,我们先来说明一下“一对多”表单的具体含义。这类表单涉及到两个表中的字段,一个称为“父表”,另一个称为“子表”。父表中的一条记录对应着子表中多个与其相关联的记录,在表单上的显示形式多半是父表的一条记录显示在上部,与其对应的子表记录以表格的形式

16、显示在下半部,二者之间应有如下关系: (1)两个表至少要有一个有公共内容的字段。 (2)“父表”中的公共字段必须设置成主索引,字段值不允许有重复,即所谓的“一”。 (3)“子表”中的该公共字段只需设置成普通索引,字段值可以有重复,即所谓的“多”。 【例8-4】使用“一对多表单向导”生成一个“一对多” 的表单。要求从父表“学生” 选择字段:学号,姓名,从子表“选课” 选择字段:课程号,成绩,使用“学号”建立两个表之间的关系;样式为“凹陷式”;按钮类型为“图形按钮”, 排序字段为“学号”(升序) ,设置表单标题为 “学生”。,8.2.3表单设计器 1设计器的启动 表单设计器的打开有多种方法: (1

17、)打开“文件”菜单,选择“新建”命令,然后在对话框中选择“表单”,并单击“新建文件”命令按钮。 (2)在命令窗口中输入并执行create form ,可以打开表单设计器来新建表单或修改原有表单。 (3)在项目管理器中选择“文档”选项卡中的“表单”,再单击“新建”按钮,在弹出的“新建表单”对话框中单击“新建表单”按钮。 2表单设计器工具栏,(1)表单控件工具栏 该工具栏是用来在表单上创建各种控件的,使用时,先单击某一控件按钮,然后将鼠标移到表单上要创建控件的位置上,用鼠标拖出一个所需大小的区域来,即可生成控件,如果尺寸不合适,还可以用鼠标调整。(2)布局工具栏 该工具栏用于在表单或报表上对齐和调

18、整控件的位置,其上的这些按钮只有在表单或报表上的多个控件被同时选中的情况下才处于可用状态。,(3)调色板工具栏 在调色板工具栏上有“前景颜色”,“背景颜色”和“其他颜色”按钮,可用来设置控件的颜色。,(4)属性窗口 在属性窗口可以对表单上各个对象进行属性设置或更改。属性窗口从上到下依次包括: 1)“对象”下拉列表框 2)“选项卡” 3)“属性” 设置框 4)“属性” 列表,(5)代码窗口 代码窗口的样式如图所示。 在代码窗口的左上部是对象列表,可以从中选择要编写代码的对象。右上部是过程列表,可以从中选择要编写代码的事件或方法。有如下三种方法可以打开如图所示代码窗口: 1)在表单中用鼠标右键单击

19、需要编写代码的对象,在弹出的快捷菜单中选择“代码”。 2)单击表单设计器中的“代码”按钮。 3)用鼠标左键双击要编写代码的对象。,(6)表单设计器中的数据环境设计器数据环境是表单设计的数据来源,表单设计器中的数据环境设计器用于表单的数据环境设置。打开数据环境设计器的方法有:选定“显示”菜单中的“数据环境”命令。选定表单快捷菜单中的“数据环境”命令。 数据环境是一个对象,它包含与表单相互作用的表或视图以及这些表之间的关系。在数据环境设计器中,可以进行以下操作: 添加表或视图。 从“数据环境设计器”中拖动表和字段。 从“数据环境设计器”中移去表或视图。 在数据环境中设置关系。 在数据环境中编辑关系

20、。,8.3表单常用控件,8.3.1控件的基本操作 表单控件的基本操作包括: 1创建控件 2调整控件 3设置控件属性,8.3.2标签控件 “标签”控件主要用于显示一段固定的文本信息字符串,它没有数据源,把要显示的字符串直接赋予标签的“标题”(Caption)属性即可。 【例8-5】设计如图8-25所示的“学生学籍管理系统”初始界面的表单。,图8-25,【例8-6】表单中有三个标签,如图8-26所示。当用鼠标单击任何一个标签时,都使其他两个标签的标题文本互换。,图8-26,8.3.3命令按钮(Command)控件 “命令按钮”控件在应用程序中起控制作用,用于完成某一特定的操作。在设计系统程序时,程

21、序设计者经常在表单中添加具有不同功能的命令按钮,供用户选择各种不同的操作。只要将要完成不同操作的代码存入不同的命令按钮的“Click”事件中,在表单运行时,用户单击某一命令按钮,将触发该命令按钮的“Click”事件代码完成指定的操作。 说明:用户在为控件设置Caption属性时,可以将其中的某个字符作为访问键,方法是在该字符前插入一个反斜杠和一个小于号(),比如,下面代码为命令按钮设置Caption属性时,指定了一个访问键“D”: THISFORM.COMMAND1.CAPTION=“查询(D)”,【例8-7】设计一个文件名和表单名均为myform2的表单,表单界面如图8-27所示:要求该表单

22、上有“女学生信息”(command1)、“学生信息”(command2)、和“退出” (command3)三个命令按钮。各命令按钮功能如下: 女学生信息:使用SQL的SELE命令查询学生表中“女”学生的全部信息。 学生信息:使用SQL的SELE命令查询学生表的全部信息。 退出:关闭表单。,图8-27,8.3.4文本框(Text)控件 文本框是Visual FoxPro里一种常用的控件。用户利用它可以在以内存变量、数组元素或非备注字段中输入或编辑数据。所有标准的Visual FoxPro编辑功能,如剪切、复制和粘贴,在“文本框”中都可以使用。文本框一般包含一行数据。文本框可以编辑任何类型数据,如

23、字符型、数值型、逻辑型、日期型或日期时间型。如果编辑的是日期型或日期时间型数据,那么在整个数据被选定的情况下,按“+” 或“-”,可以使日期增加或减少一天,或使时间增加或减少一秒。,【例8-8】利用文本框输入圆的半径,然后单击“计算”按钮,得到圆的周长。如图8-28所示。,图8-28,【例8-9】设计如图8-29所示的只有学生学号和姓名的表单。,图8-29,【例8-10】设计界面如图8-30所示的“登录”表单,要求:当用户输入用户名和密码并单击“确认”按钮后,检验其输入的用户名和密码是否匹配,(假定用户名为“bbs”,密码为“1234”)。如正确,则显示“热烈欢迎”字样并关闭表单;若不正确,则

24、显示“用户名或密码错误,请重新输入”字样,如果连续三次输入不正确,则显示“用户名与密码不正确,登录失败”字样并关闭表单。,图8-30,8.3.5编辑框(Edit)控件 与文本框形似,可输入和输出、编辑数据,但它有自己的特点: 编辑框实际上是一个完整的字处理器,利用它能够选择、剪切、粘贴以及复制,可以实现自动换行,并能使用方向键、PageUp和PageDown键以及滚动条来浏览文本。 编辑框只接受字符类型的数据,包括字符型内存变量、数组元素、字段以及备注型字段的内容,它最多能接受2,147,483,647个字符。,【例8-11】建立如图8-31所示的表单,在编辑框中显示学生表的简历字段(备注型)

25、,在表单任意位置单击时,在编辑框中选择截止到第一个逗号前的所有字符,并在消息框中显示当前所选中的字符串。,图8-31,8.3.6复选框(选择框Check)控件 一个复选框用于标记一个两值状态,如真(.T.)或假(.F.),当处于“真”状态时,复选框内显示一个对勾();否则,复选框内为空白。 【例8-12】使用复选框建立如图8-32所示表单:设置文本框中字体的式样。,图8-32,8.3.7选项按钮组(OptionGroup)控件 选项按钮组又称为单选按钮,容器类控件,一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当用户单击某个选项按钮时,该按钮即成为被选中状态,而选项组中的其他

26、选项按钮,不管原来是什么状态,都变为未选中状态,被选中的选项按钮中会显示一个圆点。被选中的选项按钮即为要输入的数据。 【例8-13】 设计一个能浏览学生管理数据库中表的表单,界面要求如图8-33。,图8-33,8.3.8命令按钮组 (CommandGroup) 控件 是一组包含命令按钮的容器控件,用户可以单个或作为一组来操作其中的控件, 常用来执行一些特定的程序代码以完成相应功能。 【例8-14】设计一个如图8-34所示的学生数据操作表单。,图8-34,8.3.9组合框(Combo)控件组合框兼有编辑框和列表框的功能,用于提供一组数据项(供用户从中选择一个数据项)主要用于从列表项中选取数据并显

27、示在编辑窗口。 说明:组合框使用方法的难点在于掌握数据源类型(RowSourceType)的使用。通过设置RowSource和RowSourceType属性,可以用不同数据源中的项填充组合框。,【例8-15】设计如图8-35左图所示的表单,程序运行后,自动在组合框中加入项目;并将第一个项目显示在组合框中,单击组合框将选中项目的内容显示在文本框中,运行后的结果如右图。,图8-35,【例8-16】建立如图8-36所示表单:统计学生表中男生和女生的人数。在组合框中选择男或女,单击“统计”命令按钮,则在文本框中显示统计结果。,图8-36,8.3.10列表框(List)控件用于提供一组条目(数据项),用

28、户可以从中选择一个或多个条目。但不能直接编辑列表框的数据,当列表框不能同时显示所有项目时,它将自动添加滚动条,使用户可以滚动查阅所有选项。 列表框的主要属性与组合框类似。但也有不同,主要表现在以下两点:组合框只有一个条目可见,列表框可有多个可见(视列表框大小而定)。组合框不提供多重选择,而列表框可以从中选择一项或多项,由MultiSelect属性决定。,【例8-17】设计一个名为”LIST2”的表单,如图8-37所示。表单中有两个标签,一个组合框,一个列表框和一个命令按钮。设置控件的相应属性值。运行表单时,组合框中有二个条目“学生”和“选课”可供选择,在组合框中选择条目则列表框框显示相应表中的

29、数据。单击“关闭”按钮则关闭表单。,图8-37,【例8-18】设计如图8-38所示的表单,完成二个列表框间项目的相互移动。,图8-38,8.3.11表格(Grid)控件 表格是将数据以表格形式表示出来的一种容器控件。表格提供了一个全屏幕输入输出数据表记录的方式,它也是一个以行列的方式显示数据的容器控件。一个表格控件包含一些列控件(在默认的情况下为文本框控件),每个列控件能容纳一个列标题和列控件。“表格”控件能在表单或页面中显示并操作行和列中的数据。,【例8-19】利用表格的动态属性进行表格的动态设置,以用表格弹出“学生” 表为例要求如下:表格中的数据如果为奇数行,则显示为白颜色;否则显示为绿颜

30、色,程序运行后如图8-39所示。,图8-39,【例8-20】利用表单设计器完成如下图8-40所示表单设计,要求: 按表单的界面要求加入相应的控件并设置相应的属性。 当向文本框text1输入学生表中的学生姓名后,按下命令按钮“查询”时,表格框中将显示该学生表的学号及选课表的课程号和成绩。 当按下命令按钮“退出”时,释放表单。,图8-40,8.3.12 页框(PageFrame)控件“页框”控件实际上是选项卡界面。在表单中,一个页框可以有两个以上的页面。它们共同占有表单中的一块区域。在某一时刻只有一个活动页面,而只有活动页面中的控件才是可见的,可以用鼠标单击需要的页面来激活这个页面。表单中的页框是

31、一个容器控件,它可以容纳多个页面,在每个页面中又可以包含容器控件或其他控件。,【例8-21】建立如图8-41所示的表单,文件名为“stu_form”,要求如下: (1)表单的标题为:“学生信息管理”,在表单上添加控件如图8-41所示, 页框:三个页面, “退出”命令按钮。 (2)为表单建立数据环境,依次向数据环境添加“学生”和“选课”表。 (3)按从左至右的顺序三个选项卡的标题的名称分别为“学生表”、“成绩表”、“综合信息”,每个选项卡上均有一个表格控件,分别显示对应表的内容,其中“综合信息”选项卡显示如下信息:“学生”表中的学号,姓名字段,加上“选课”表里的课程号,成绩字段。 (4)单击“退

32、出”按钮关闭表单。,图8-41,8.3.13计时器控件(Timer)计时器是Visual FoxPro提供的用于定时的特殊控件,它可以指定时间间隔,在后台控制系统时钟,当计时器满预订时间间隔时,系统会自动触发其Timer事件,以便完成其中指定的操作。计时器控件的属性和事件很少,常用的属性和事件有3个: 1.Enabled属性 2.Interval 3. timer事件,【例8-22】设计如图8-42所示表单,表单标题为“时钟”,表单运行时自动显示系统的当前时间。并完成下列功能: 显示时间的为标签控件Label1单击“暂停”命令按钮(Command1)时,时钟停止;单击“继续”命令按钮(Command2)时,时钟继续显示系统的当前时间;单击“退出”命令按钮(Command3)时,关闭表单。,图8-42,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 实用文档 > 往来文书

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报