《数据库原理及应用课件.ppt》由会员分享,可在线阅读,更多相关《数据库原理及应用课件.ppt(48页珍藏版)》请在三一办公上搜索。
1、第七章表 单 设 计,本章教学计划,目的:了解对象的基本概念和面向对象程序设计的思想,掌握用表单设计器和向导建立表单 重点:控件应用,表单属性 难点:事件代码 课时:课堂讲授4 课时、上机实验6课时 方式:课堂讲授、上机实验,本章纲要,面向对象程序设计方法,创 建 表 单,表 单 控 件 设 计,面向对象程序设计已成为当前应用软件发展的主流,它与传统的结构化程序设计有很大的区别。Visual FoxPro不仅支持面向过程的编程技术,而且支持面向对象的编程技术。,7.1 面向对象程序设计方法,结构化程序设计以对数据进行操作的过程作为程序的主体,将一个待求解的问题自顶向下分解成一个个简单独立的子问
2、题,然后用子程序或函数解决这些子问题。,面向对象程序设计以对象作为程序的主体。程序由若干对象组成,对象是将数据与对该数据的操作代码封装在一起的实体, 对象之间通过发送消息来实现程序的功能。 Visual FoxPro主窗口(表单)由若干个对象组成,通过单击主窗口的关闭按钮向系统发送消息,完成关闭主窗口的操作。程序中的对象由类产生,类是同类对象的特征和行为的综合描述。 面向对象的程序设计不需要考虑程序代码的全部流程,只需根据系统预先提供的类,考虑如何创建对象及创建什么样的对象。,7.1.1 面向对象的基本概念,对象 在Visual FoxPro 中,对象是将数据和对该数据的操作代码封装在一起的程
3、序模块,即对象是包含属性和方法的实体。2. 类(1)类的定义 对具有相同属性和行为的对象集合的一种综合描述。类是对象的抽象描述,对象是类的具体化和实例化。同类对象都具有所属类的方法和属性,但每个对象的属性值可以不同。,(2)基类和子类基类是Visual FoxPro 内部定义的类。子类是以其他类定义为起点创建的新类,它继承父类的特征和方法,又具有自己的特征和方法。(3)类的特性封装性 将一个数据和与这个数据有关的操作集合在一起,形成一个有机的实体对象。继承性 是类(基类)创建新类(子类)的过程。子类(派生类)自动共享其父类(基类)中的所有属性和方法,但子类可定义自己属性和方法。多态性 当不同的
4、对象收到相同的消息时产生不同的动作。,3. 容器类和控件类,(1)容器类:由容器类衍生出来的对象可以包含其他对象,并允许访问所包含的对象。,容器类及可包含的对象,(2)控件类 控件类比容器类封装得更为完整。控件类创建的对象,在设计和运行时作为一个整体,不能再包含其它控件对象。控件类包括标签、命令按钮、文本框、编辑框、列表框、组合框、计时器、形状、复选框、图片、线条、超联接等。,4. 对象的属性、方法和事件 属性、方法、事件是构成对象的三大要素。把属性看作对象的特征,把事件看作对象的响应,把方法看作对象的行为。,(1)属性 是指对象的特征,每个对象都有自己的属性如表单具有标题(Caption)、
5、背景颜色(Backcolor)、可移动(Movable)等属性。它们有一个对应值,可在属性窗口设置,也可在运行时改变。如:thisform.caption=“数据维护” thisform.movable=.f.,(2)方法是指对象执行的一个操作,是与对象相关联的过程,它是对象的函数成员。 方法程序可出现在对象的事件中,也可独立于事件单独存在。如:Box,Circle,Hide,Release等 方法程序可以无限扩展,而事件集合是固定的,用户不能创建新的事件,却可创建新的方法和属性。 方法的表示:如 thisform.release thisform.show,(3)事件 事件是一种预先定义好的
6、特定动作,由用户或系统激活,一般情况是由用户的交互操作产生。事件作用于对象。如:单击鼠标事件(click)、调入事件(load)、初始化事件(init) 。 我们需要对事件编写对应代码,当系统响应用户的动作时,将自动触发事件对应的代码。例如,用户单击窗口(表单)中“关闭”按钮,产生单击(Click)事件,则执行Click事件中预先编好的关闭窗口代码,以关闭窗口。,7.1.2 对象创建和引用,1.对象的创建 在程序设计中可用CREATEOBJECT函数来直接生成基于某个类的对象。格式:=CREATEOBJECT()功能:由类创建对象。说明:表示创建的对象名称,是合法标识符。:表示类的名称,由系统
7、指定。,2.对象的引用,在面向对象程序设计中,常常需要引用对象来设置对象的属性、事件及调用方法程序。对某个对象的属性、事件或方法的归属层次的描述就是对象的引用。,(1)对象引用规则在Visual FoxPro中经常用以下关键字和属性:Thisformset:表示当前表单集Thisform : 表示当前表单This : 表示当前对象Parent: 表示包含当前对象的容器对象,引用格式是在引用关键字后跟一个点号,再写出被引用对象或者对象的属性、事件或方法,引用方法有绝对引用和相对引用两种。 绝对引用: 从最高容器开始逐层向下直到某个对象为止的引用方式,在引用时需要将对象所处位置的完整容器层次全部指
8、出。相对引用:相对引用就是从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到另一对象的引用。,(2)对象属性访问与对象方法调用对象属性访问以及对象方法调用的基本格式如下:.(参数列表),【例7.6】基于Visual FoxPro的Form类生成一个对象,然后访问该对象的一些属性和方法,可在命令窗口输入以下命令:Form1=CREATEOBJECT(Form) Form1.Show Form1.Caption=“演示”Form1.Release,(3)执行对象事件 事件过程代码设计好后,运行时可以由用户使用鼠标操作产生单击和移动等事件调用其代码,也可在运行中由程序通过命令调用其代码。
9、执行对象的事件的命令格式为: .(参数表),【例7.7】用命令执行表单事件和命令按钮事件。 Thisform.Active Thisform.Command1.Click,7.2 创 建 表 单,表单的创建是一个全新的领域。创建表单的过程,就是定义控件的属性,确定事件或方法、代码的过程。 表单就是一个容器,它可以容纳多个控件。一般可以使用表单向导和表单设计器两种方式创建表单。,7.2.1 表单设计器,用表单设计器创建表单的操作步骤:,文件,新建,表单,表单设计器,显示,表单控件,属性,代码,保存,运行,2. 表单设计器窗口,3. 属性设置窗口,在“属性”窗口设置对象属性,首先选中要设置的对象,
10、打开“属性窗口”,设置该对象属性。,4. 数据环境 如同查询和视图的设计一样,Visual FoxPro 表单的主要任务是对数据库中数据进行操作,这些操作包括查询、修改和插入。表单上的对象和库中数据的联系是通过数据环境完成的。数据环境包含与表单有联系的表和视图以及表之间的关系,它指明表单的数据的来源。用户可以通过数据环境设计器来设置表单的数据环境。,5. 表单控件操作 打开表单设计器后,可以在“表单控件”工具栏中选择合适的控件,向表单中添加控件;设置控件的属性和编写事件代码,设置控件布局和调整Tab次序。 “表单控件”工具栏是表单设计的主要工具。默认包含21个控件、4个辅助按钮,,6.保存和运
11、行表单(1)保存表单 表单设计完成后,选择“文件”菜单中的“保存”命令,表单将保存在扩展名为.SCX的表单文件和扩展名为.SCT的表单备注文件中。 表单中所有对象的属性设置和程序代码都保存在.SCT表单备注文件中,该文件可用文本编辑器打开。(2)运行表单 在表单设计器打开时,用系统主菜单或快捷菜单方式可以运行表单,另外以命令方式运行表单,格式为: Do form .scx,表单设置(1)表单常用属性,Caption:设置表单的标题。默认为“Form1”。 Height和Width:设置表单的高度和宽度。 Forecolor:设置表单标题文本颜色。 BackColor: 设置表单的背景颜色。 A
12、utoCenter:确定表单在运行时是否在屏幕上居中。AutoCenter属性值为.T.,则居中,否则为.F.。默认值为.T.。,Closeable:确定在表单运行时能否使用关闭按钮关闭表单。属性值为.T.,则可以使用关闭按钮;否则为.F.,不能用关闭按钮。默认为.T. MaxButton:设置表单运行时是否有最大化按钮。默认为.T.,表示有最大化按钮。 MinButton: 设置表单运行时是否有最小化按钮。默认为.T.,表示有最小化按钮。 Visible:设置表单运行时是否显示表单,若属性值为.T.,表单运行时显示表单;属性值为.F.,表单运行时不显示表单。默认为.T.。,表单的常用事件和方
13、法,7.2.2 表单向导和快速表单,在Visual FoxPro系统中,除使用表单设计器创建新的表单外,还可以使用表单向导和快速表单创建新的表单,不过由表单向导创建的只能是数据表单。,7.3.1 输出类控件,7.3 表 单 控 件 设 计,1标签控件 “标签”控件是按一定格式显示在表单上的文本信息,用来显示表单中各种说明和提示信息。一旦“标签”控件的属性、事件和方法被定义,输出信息将根据这些定义,按指定的格式输出。 “标签”控件的属性主要包括:“标签”的大小及颜色,“标签”所显示的文本内容、字体、大小和风格等。,2. 图形、线条和形状图像(Image)控件:使用图像控件,可以在表单上创建图像,
14、Visual FoxPro的图像控件可以支持BMP、GIF和JPG等格式图像的显示。 线条(Line)控件:在表单上画各种类型的线条,包括水平线、斜线和垂直线。 形状(Shap)控件:在表单上画出各种类型的图形,包括矩形、圆角矩形、正方形、圆角正方形、椭圆和圆。,7.3.2 输入类控件 输入类控件主要用于输入和编辑数据。,1. 文本框(Textbox)控件 文本框可以显示和输入多种类型的数据。默认为字符型数据,最大长度为256个字符。如果编辑的是日期型或日期时间型数据,那么在内容被选定的情况下,按“+”或“-”,可以使日期增加一天或减少一天。 向文本框中输入数据时,数据过长能自动换行,而按En
15、ter键,输入就终止。所有编辑功能在文本框内都可使用。,2.编辑框(Editbox)控件 编辑框的主要功能也是显示和输入文本,但它与文本框有以下区别:(1)编辑框只能输入、编辑字符型数据。而文本框可用于4种类型数据的输入。(2)编辑框可以输入多段文本,即按Enter键是换行,而不是终止编辑框的输入。而文本框只能输入一段文本,按Enter键终止输入。 由于编辑框允许输入多段文本,因此编辑框可用于处理备注型字段(需设置编辑框ControlSource属性为备注字段),有时也用来显示剪贴板中的文本。,3. 列表框 (ListBox) 控件 列表框提供一组选项(数据项),用户可以从中选择一个或多个选项
16、。一般情况下,列表框只显示其中的若干选项,用户可以通过滚动条浏览其他选项。,4. 组合框 (ComboBox)控件 组合框用于提供一组选项供用户从中选择。上面介绍的有关列表框的属性、方法,组合框同样具有,并且具有相似的含义和用法。 组合框和列表框的主要区别在于: 组合框通常只有一个选项是可见的。 组合框有两种形式:下拉组合框和下拉列表框。下拉组合框在运行时即可选择选项,也可输入文本,而下拉列表框只能选择选项,不能输入文本。,5微调(Spinner)控件 “微调”控件用来控制数值型数据的使用范围,并在规定范围内调整、选择数据。利用“微调”控件框可输入一个数据,或通过(Up、Down)按钮选择一个
17、数据。 “微调”控件的主要属性包括:微调框中输入数据的最大值、最小值,以及单击按钮的增减值。,7.3.3 控制类控件,控制类控件主要用于执行某特定操作。,1命令按钮(CommandButton)控件 “命令按钮”控件主要用来控制程序的执行过程,以及对表中数据的操作等。 “命令按钮”控件的属性主要包括:“命令按钮”的大小,“命令按钮”显示文本的内容,显示文本字体的大小、风格和颜色等。 “命令按钮”控件的动作响应,主要由“命令按钮”的Click事件代码决定。,2命令组(CommandGroup)控件 “命令按钮组”控件是把一些命令按钮组合在一起,作为一个控件管理。每一个命令按钮有各自的属性、事件和
18、方法,使用时仍需独立操作某一个指定的命令按钮。 “命令按钮组”控件的主要属性是Buttoncount,用来定义命令按钮组包含的命令按钮的个数。,3. 选项组(OptionGroup)控件 选项组又称按钮组,是包含选项按钮的一种容器。一个选项组中往往包含若干个选项按钮,用户只能从中选择其中一个按钮。 当用户选择某个选项按钮时,该按钮即成为被选中状态(显示一个圆点),而选项组中的其他选项按钮,不管原来是什么状态,都变为未选中状态。,4. 复选框(CheckBox)控件 复选框的左边有一个,用于标记一个两值状态,真(.T.)或假(.F.)。当处于“真”状态时复选框内显示一个对勾();否则,复选框内为
19、空白。 复选框和选项组不一样,在选项组中必须且只能选择一个单选按钮,而复选框是可以选也可以不选;另外,选项组必须有两个以上的可选按钮,而复选框可以只有一个。,5.计时器(Timer)控件 计时器可以进行计时,按某个时间间隔周期性地执行指定的操作。在应用程序中用来处理可反复发生的动作。例如计时器可用于显示动画。 计时器在表单设计中是可见的,这样便于选择属性、查看属性和为它编写事件代码,而在运行时计时器不可见的,因此它的位置和大小都无关紧要。 计时器工作的三大要素是:Interval属性、Enabled属性、Timer事件代码。,1. 表格(Grid)控件 用于显示表、视图或查询结果,它有垂直和水
20、平滚动条,可以同时操作和显示多行数据。 表格是一种容器对象,一个表格对象由若干个列对象(Column)组成,每个列对象包含一个标头对象(Header)和若干控件。表格、列、标头和控件都有自己的属性、事件和方法。,容器除命令组和选项按钮组以外,还包括表格、页框、表单和表单集。,7.3.4 容器类控件,2页框控件 “页框”控件用来把多个不同格式的容器类对象封装在一个页框中。一个页框中可以有多页对象,而在每页中又可以包含若干控件。 “页框”控件的主要属性是:“页框”包含多少页、每页的标题等。,3. 表单集 表单集是一个容器,可以包含多个表单,而且表单集及其包含的表单都存储在一个表单文件中,这样方便了
21、一组相关表单管理工作。 表单集也有属性、事件和方法程序,它是表单文件中的最顶层对象,Visual FoxPro的其他对象如表单、控件、容器都是表单集能包含的子对象。一个表单文件最多只能包含一个表单集。,7.3.5 连接类控件 Visual FoxPro不仅能使用本身的数据,还能使用其它系统提供的数据。这一功能是通过与其它系统的连接来实现的。 为此,在Visual FoxPro表单控件工具栏中设置了ActiveX控件、ActiveX绑定控件及超级链接控件等3个控件按钮,用于实现Visual FoxPro与外界联接。,1. 超级链接(HyperLink)控件 超级链接对象控件的功能是引导用户进入另
22、一个应用程序界面,一般另一个应用程序是当今最为流行的浏览器程序,而界面内容一般为HTML文本,即网页文本。 超级链接对象控件一般要和标签或文本框(地址框)配合使用,在设计时超级链接对象控件可见,而程序运行时不可见,因此不用考虑它的属性和事件。 重要方法NavigateTo:设置引导用户进入的URL地址,或HTML文件目录名称。,2. ActiveX控件 ActiveX控件是指符合ActiveX标准(由微软公司制定的一组技术标准)的控件。 在Visual FoxPro只能使用ActiveX控件,不能创建ActiveX控件。在表单控件工具栏中设置了名为Olecontrol的ActiveX控件按钮,选定这一按钮后,用户可向表单插入一个OLE对象,通过OLE运行微软公司开发的其它软件(如Word、Excel等)应用程序;或添加表单控件工具栏没有的Active控件。,3. ActiveX绑定控件 ActiveX绑定控件主要用于显示通用型字段数据,通用型字段可包含其它应用程序的数据。 在表单控件工具栏上有一个ActiveX绑定控件Oleboundcontrol按钮,其若与通用型字段绑定,就能显示OLE对象,还可调出创建这些对象的应用程序,以可视的方式查看或操作这些数据。,