数据库系统与VisualFoxPro第五章.ppt_第1页
数据库系统与VisualFoxPro第五章.ppt_第2页
数据库系统与VisualFoxPro第五章.ppt_第3页
数据库系统与VisualFoxPro第五章.ppt_第4页
数据库系统与VisualFoxPro第五章.ppt_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第五章 面向对象程序设计,本章要点: 本章主要介绍面向对象程序设计的基本概念和程序设计方法,重点介绍控件使用和表单的设计,难点在于如何掌握面向对象的编程方法。,课时量:8课时,5.1 面向对象程序设计基本概念,一、对象 对象(Object)是数据和数据的操作代码的组合体,是构成程序的基本单位,是程序的运行实体。对象可以是任何具体事物。 一个对象包括一个或多个属性,一个或多个方法以及若干事件(与用户的接口)。 属性:(Property)代表一个对象所具备的特性或特征。 事件:(Event)是指对象所能辨识或检测的动作。 方法:(Method)其实就是一个函数,只不过它完全内建于对象中,设计人员可

2、以调用对象的方法来完成特定的操作。,二、类 类(Class)是对同类型对象(具有相同的属性和方法的对象)集合的一种抽象。类规定了所属对象的共同属性和方法,是一种抽象的数据类型,而对象则是类的实例。 封装性 封装是指将对象的内部数据结构、方法程序和属性代码包装在一起。 继承性 继承性是减少代码的一条途径。一个子类可以拥有其父类的全部功能,在此基础上,还可以添加其它控件或功能。 多态性 多态性意味着许多对象具有相同的方法,但对象调用方法时都会采取正确的动作。,思考题:类与对象有什么区别与联系?试举例说明。,5.2 Visual FoxPro 6.0 中的类和对象,Visual FoxPro 6.0

3、的基类分为容器类和控件类两种。 一、容器类 容器类产生的控件可以包含其它对象,并允许访问这些对象。 常用的容器类有:表单、表单集、列、命令按钮组、容器、表格、选项按钮组、页、页框、工具栏。 二、控件类 控件类不能包含其它对象,只能加入到其它对象中。 常用的控件类有:复选框、组合框、命令按钮、编辑框、图像、标签、线条、列表框、选项按钮、形状、微调、文本框、计时器、控件、列标题、OLE绑定型控件、OLE容器控件、自定义类。,三、容器对象和控件对象,表5-1 容器对象与其所能包含的对象,5.3 Visual FoxPro 6.0的属性、事件和方法,一、常用属性 Visual FoxPro 6.0的属

4、性从功能上大致可分为状态属性、修饰属性、布局属性、数据属性、格式属性、类属性和其它常用属性。 1、状态属性 Enabled:指定对象能否响应用户触发的事件。 ReadOnly:指定用户是否可以编辑一个控件。 Visible:指定对象是可见还是隐藏。 2、修饰属性 BackColor:指定对象显示文本或图形的背景色。 ForeColor:指定对象显示文本或图形的前景色。 Caption:指定在对象标题中显示的文本。 FontName:指定显示文本的字体名。 FontSize:指定对象属性文本的字体大小。,3、布局属性 Alignment:指定与控件相关的文本的对齐方式。 AutoSize:指定控

5、件是否依据其内容自动调节大小。 Height:指定对象在屏幕上的高度。 Left:对于控件,指定相对其父对象的左边界。 Top:对于控件,指定相对其父对象最顶端的边缘所在位置。 Width:指定对象的宽度。 4、数据属性 ControlSource:指定与控件绑定的数据源。数据绑定后,对象的值便与数据源的数据一致了。以字段为例,控件的值由字段来决定,而字段值也将随控件值的改变而改变。 Value属性:指定一个控件的当前状态或控件中数据源的当前值。,5、格式属性 DateFormat:指定在文本框中日期和时间的显示格式。 Format:指定某个控件的Value属性的输入和输出格式。 InputM

6、ask:指定控件中数据的输入格式和显示方式。 6、类属性 BaseClass:指定被引用对象所基于的Visual FoxPro 6.0基类名。 Class:返回一个对象的基类名称。 ParentClass:返回对象所属类的的基类。 ClassLibrary:指定用户自定义类库名,此类库中包含自定义的对象类。 7、其它常用属性 Name:对象的名称,在代码中可以通过该名称来引用对象。 Parent:用来引用一个控件的容器对象。,二、常用事件 Activate:当激活表单、表单集、页框或工具栏对象时,触发该事件 Click:当鼠标左键单击对象或控件,或者在程序中包含了触发此事件的代码、或者更改特定

7、控件的值时,触发该事件 DblClick:当鼠标左键双击(连续两次快速按下并释放)对象时,此事件发生 Destroy:当对象从内存中释放时,发生该事件 Error:当一个方法程序在运行出错时,此事件发生 Init:当对象创建时发生 GotFocus:当对象通过用户操作或执行程序代码得到焦点时,此事件发生 LostFocus:当对象失去焦点时发生,三、常用方法 AddObject:运行时,在容器对象中添加对象。 格式:AddObject(cName,cClass) 参数说明: cName:指定添加新对象的名称。 cClass:指定添加对象所基于的类。 Move:用于移动一个对象。 格式:Move

8、(Left ,Top ,Width ,Height) 参数说明: Left:指定对象左边界的水平坐标。 Top:指定对象上边界的垂直坐标。 Width:指定对象的新宽度。 height:指定对象的新高度。 Refresh:重画表单或控件,并刷新所有值。 SetFocus:将指定控件设置为焦点。,5.4 对象的引用,一、绝对引用和相对引用 1、绝对引用 绝对引用某一对象时,必须指明与该对象关联的所有容器类对象。 【例5-1】将表单集Formset1中表单Form1的命令按钮Command1的标题(Caption属性)改为“确定”,标签Label1的标题改为“管理系统”。引用格式如下: Forms

9、et1.Form1.Command1.Caption=“确定” Formset1.Form1.Label1.Caption=“管理系统”,2、相对引用 在面向对象的程序设计中,引用对象可以采用一种相对引用方式。通常用以下引用关键字开头: This:表示对象自身。 ThisForm:表示包含该对象的表单。 ThisFormset:表示包含该对象的表单集。 Parent:包含该对象的直接容器。 【例5-2】上面例5-1的绝对引用在Command1按钮的代码中可以用以下相对引用: ThisForm.Command1.Caption=“确定” (或者This.Caption=“确定”) ThisFor

10、m.Label1.Caption=“管理系统” (或者This.Patrent.Label1.Caption=“管理系统”),二、设置对象的属性 1、设置属性 设置属性的一般语法格式如下: 对象属性引用=属性值 2、设置多个属性 Visual FoxPro 6.0提供了With-EndWith语句,它用来设置多个属性。语法格式如下: With EndWith,【例5-3】下列语句设置Formset1表单集中Form1表单的Command1命令按钮的部分属性: With Formset1.Form1.Command1 .ForeColor=RGB(0,0,0) 设置前景色为黑色 .BackCol

11、or=RGB(192,192,192)设置背景色为灰色 .FontSize=12 设置文本字号为12 .Caption=“退出” 设置标题为“退出” Endwith,三、 事件的响应 Visual FoxPro 6.0的程序设计没有一个固定的执行线路,它的执行取决于当前所发生的事件。 1、事件驱动工作方式 事件一旦被触发,系统立即执行与该事件对应的过程。待事件过程执行完毕后,系统又处于等待某事件发生的状态,这种程序执行方式明显地不同于面向过程的程序设计,称为应用程序的事件驱动工作方式。 事件三种触发方式:一是由用户触发;二是由系统触发;三是由代码触发。 2、为事件(或方法程序)编写代码,四、

12、方法的调用 创建一个对象后,便可以在应用程序的任何地方调用该对象的方法,以完成对该对象的操作或控制。 【例5-4】下列代码调用方法,将焦点设置在命令按钮上。 Formset1.Form1.Command1.SetFocus 本节总结: 1、对象的属性、方法的引用是面向对象程序设计的基础,应当熟练掌握。 2、事件驱动工作方式,5.5 表单设计,一、 Visual FoxPro 6.0可视化编程的步骤 Visual FoxPro 6.0可视化编程步骤如下: 建立应用程序的用户界面,主要是建立表单。 用户可通过以下3种方法创建表单: (1)通过“表单”向导生成表单。 (2)使用“快速表单”命令创建表

13、单,并用“表单设计器”添加相应控件。 (3)在“表单设计器”中新建或修改表单。 设置表单的数据环境 在表单中添加应用程序所需的各种对象,一般由控件创立。 设置各对象(表单及控件)的属性。 编写方法及事件过程代码。 调试、运行应用程序。 编译、制作程序发布,二、表单设计器 1、新建、打开和关闭表单 2、工具栏 3、属性窗口 对象列表框、页框选项卡、属性设置框、属性列表框、属性功能说明框 对象属性设置的步骤如下: (1)在“对象”下拉列表框中选中要设置的对象名。 (2)在属性列表框中,选定要设置的属性名。 (3)在属性设置框中,输入或选定新的属性值。,4、添加数据环境 设置数据环境 向数据环境中添

14、加表或视图 从数据环境设计器中拖动字段和表 表5-4 拖动项与创建对象的对照表 拖动到表单的项 所创建的对象 表 表格 逻辑型字段 复选框 备注型字段 编辑框 通用型字段 OLE绑定型控件 其他类型的字段 文本框 从数据环境中移去表 在数据环境中设置关系 数据环境中编辑关系,四、常用的表单属性、事件和方法 1、常用的表单属性 AlwaysOnTop 控制表单是否总是处在其他打开窗口之上 Caption 指定表单标题栏显示文本 Closeable 控制用户是否能通过双击“关闭”框来关闭表单 MaxButton 控制表单是否具有最大化按钮 MinButton 控制表单是否具有最小化按钮 ShowW

15、indow 控制表单是否在屏幕中,悬浮在顶层表单中或作为顶层表单出现 Visible 控制表单是显示还是隐藏 WindowsType 控制表单是无模式表单还是模式表单。模式表单的特性:用户若想访问该表单之外的对象,则必须先关闭该表单。 Name 表单的名称,用来标识表单。在代码中通过该名称来引用表单 AutoCenter 是否在主窗口内自动居中,五、常用的表单事件 Load 在一个表单创建之前发生 Init 创建一个表单时发生 Activate 当表单被激活时发生 Destroy 释放一个表单时发生 Unload 释放一个表单时发生 GotFocus 当表单通过用户操作或以代码方式获得焦点时发

16、生 Click 单击表单时发生 LostFocus 当表单失去焦点时发生,三、常用的表单方法 Release 释放(清除)表单 Refresh 重新绘制表单,并刷新它的所有值 Show 显示表单,该方法将表单Visible属性设为真,并使表单成为活动对象 Hide 隐藏表单,该方法将表单的Visible属性设为假 【例5-5】 创建表单,设置表单标题为“销售管理系统”,表单居中,名字改为MyForm,不允许最大化和最小化。 创建表单 利用属性窗口修改表单属性 保存表单 运行表单,5.6 表单控件,表单中经常包含许多控件。通过Visual FoxPro 6.0的表单控件工具栏可创建的控件大致可分

17、为5类: (1)输出类:标签、图像、线条和形状。 (2)输入类:文本框、编辑框、微调控件、列表框和组合框。 (3)控制类:命令按钮、命令按钮组、复选框、选项按钮组和计时器。 (4)容器类:表格、页框和Container容器。 (5)连接类:ActiveX 控件、ActiveX绑定控件和超级链接。,一、命令按钮和命令按钮组 1、命令按钮(CommandButton)的常用属性 命令按钮的常用属性包括: (1)Caption:指定命令按钮的标题文本,缺省值为Form1。 (2)Enabled:指定命令按钮是否有效,缺省值为.T.。 (3)Default:指定缺省的命令按钮。缺省的命令按钮比其它命令

18、按钮多一个粗边框,当用户按回车键后就执行该按钮的Click事件。 (4)AutoSize:指定命令按钮能否根据其标题自动设置大小。 (5)Name:命令按钮的名称,在代码中,可通过此名称来引用命令按钮。,二、命令按钮组的常用属性和方法 (1)ButtonCount:命令按钮的计数属性,用于设置命令按钮组中按钮的数目。缺省值为2。 (2)Value:当前选中的命令按钮的序号。 (3)Buttons:使用该属性可访问组内的每一个按钮,并为每一个按钮设置属性和调用方法程序。其一般语法为; CommandGroup.Buttons(i).Property=Value 或CommandGroup.But

19、tons(i).Method 该属性只能在程序中使用,在设计时不可用。 (4)SetAll 方法:设置组中所有按钮的属性。如将Forml 表单中命令按钮组CommandGroupl的所有按钮设置为无效的代码如下: ThisForm.CommandGroup1.SetAll(Enabled,.F.,CommandButton),5.6.2 标签(Label) 标签主要用于显示提示信息。它没有数据源,可把要显示的字符串直接赋值给标签的Caption(标题)属性即可。 标签控件的常用属性有: (1)Caption:标签的标题,默认值为LabelX(X=1、)。 (2)AntoSize:指定是否根据标

20、题的大小长度调整标签的大小,默认值为假(.F.)。 (3)Backstyle:指定标签的背景是否透明,默认值为不透明(1)。 (4)Wordwap:指定标签上的文本是否可以多行显示,默认值为假(.F.)。 (5)ForeColor:指定标签显示文本的字体颜色。 (6)BackColor:指定标签背景颜色。 (7)Name:标签的名称,默认值为LabelX(X=1、)。,【例5-6】 创建表单,标题为“销售管理系统”,在表单上添加以下控件: 标签:标题为“欢迎进入销售管理系统”。 命令按钮:标题为“退出”,要求单击该命令按钮,释放表单。 三个问题: 建立什么控件? 修改控件的什么属性? 编写哪些

21、事件的程序代码?,三、文本框(TextBox) 文本框是表单中最常用的控件之一。它允许用户输入或显示文本信息,从中可以编辑内存变量、数组元素或表字段(备注型和通用型字段除外)中的数据。 文本框的常用属性、事件、方法包括: (l)InputMask:数据的输入输出格式(如:999.9表示数据是由小于 1000的带一位小数的数字组成)。 (2)Format:数据的类型,如整数(N)、字符型(C)、日期型(D)等。 (3)Value:返回文本框的当前内容。该属性的默认值是空串。如果ControlSource属性指定了字段或内存变量,则该属性将与ControlSource属性指定的变量具有相同的数据和

22、类型。 (4)ControlSource:用来与某个表字段或内存变量相绑定。一般情况下,可以利用该属性为文本框指定一个字段或内存变量。运行时,文本框首先显示该变量的内容。而用户对文本框的编辑结果,也会最终保存到该变量中。,(5)ReadOnly:指定文本框中的数据是否只读,默认值为假(可编辑的)。 (6)DisableBackcolor:指定一个失效控件的背景色。 (7)DisableForecolor:指定一个失效控件的前景色。 (8)PasswordChar:指定文本框控件内显示用户输入的字符还是显示占位符。该属性的默认值是空串,此时没有占位符,文本框内显示用户输入的内容。当该属性指定一个

23、占位符(如*或其他字符)后,文本框内将只显示占位符,而不会显示用户输入的实际内容。这在设计口令时经常用到。 (9)SetFocus方法:指定焦点,执行此方法可把光标移到此文本框。 【例5-7】 设计表单,输入圆的半径,按公式计算圆的面积 。,四、列表框(ListBox) 列表框用来显示可滚动的列表,其中的所有列表项都是可见的。用户可从中选择一项或多项。 1、列表框的常用属性 ColumnCount:指定列表框中显示的列数。 ControlSource:该属性在列表框中的用法与在其他控件中的用法有所不同。在这里,用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果。 MultiS

24、elect:指定用户是否可以一次在列表框中选择多项。 RowSource:指定列表框的数据源,其类型由RowSourceType属性指定。 RowSoureType:指定列表框的数据源的类型。 BoundColumn:指定包含多列的列表框控件中,哪一列绑定到该控件的Value属性上。, ListCount:统计列表中选项的数目。 Selected:指定列表框内某个条目是否处于选定状态。该属性在设计时不可用,在运行时可读写。 List:读取列表框中数据条目的字符串数组。例如,读取列表框List1中第3个条目第1列上的数据项,其引用为: ThisForm.List1.List(3,1) &或者 T

25、hisForm.List1.List(3) 二、列表框中常用的方法 (l)AddItem:当 RowSourceType属性为 0时,给列表框添加一项。 (2)RemoveItem:当 RowSourceType属性为 0时,从列表框中删除一项。 (3)Requery:当RowSource中的值改变时更新列表。 (4)Clear:清除列表框中的各项。,三、列表框中的数据源类型 列表框中的数据源类型由RowSourceType属性决定,该属性有以下几种常用设置: (1)0-无:无数据源,需通过编程向列表框中添加项。 (2)1-值:可用RowSource属性指定多个要在列表框中显示的值。 (3)2

26、-别名:将表中的字段值作为列表框的条目。 (4)3-SQL语句:在 RowSource属性中应包含一个SQL语句。 (5)4-查询:可以将查询的结果填充到列表框,查询是在查询设计器中设计的。 (6)5-数组:将数组中的内容作为列表框条目的来源。数组要先定义并赋值。 (7)6-字段:将表中的一个或多个字段作为列表框条目的数据源。 (8)7-文件:将用当前目录下的文件填充列表,并允许选择不同的驱动器和目录。此时RowSource属性可设置为列表中显示的文件类型。,【例5-8】 设计两个列表框,在两个列表框之间进行数据交换。 列表框包含以下基本操作: (1)使用列表框的计数属性:ListCount。

27、 引用ListCount属性可得到列表框中的项目总数。 (2)访问列表框中的某一项可使用Listn。 (3)确认某一项被选中可使用Selected属性,格式为Selectedi。,五、编辑框(EditBox) 编辑框与文本框一样,可以接受数据的输入和输出,但编辑框只能接受字符型数据,而且编辑框允许输入多行文本,而文本框只能输入一行文本。编辑框一般用来编辑长字段或备注型字段,用户可以在其中输入或更改文本,并可将结果保存在指定的变量或字段中。 编辑框的常用属性有: (1)ControlSource:用来与某个表字段或内存变量相绑定。 (2)HideSelection:当编辑框失去焦点时,编辑框中被

28、选中的文本是否还呈选中状态。默认值为真(.T.),即编辑框失去焦点时,隐藏文本的选中状态。 (3)Readonly:用户能否修改编辑框中的文本。 (4)ScrollBars:是否具有垂直滚动条。,5.6.6 复选框(CheckBox) 复选框只有两种状态:选中和不选中。可用它来指定布尔值,如真与假、男与女、打开与关闭等。 复选框属于绑定型控件,可用来保存或显示表中的逻辑字段,由复选框的ControlSource属性指定绑定的数据源。复选框的Value属性值有三种状态: (1)复选框显示为选中:当前记录值为真(.T.)。 (2)复选框显示为未选中:当前记录值为假(.F.)。 (3)复选框变为灰色

29、:当前记录值为空值。 【例5-9】 一个按姓名查询的程序:从键盘上输入姓名,然后查找相应的记录并显示。,七、选项按钮组(OptionGroup) 选项按钮又称单选按钮。一个选项按钮组控件可包含有多个选项按钮,但用户一次只能选择其中的一个按钮。 选项按钮的常用属性包括: (1)ButtonCount:指定选项按钮组中的选项按钮数目,默认值为2。 (2)Buttons:用来表示选项按钮组中每个按钮的数组。假设本表单此选项按钮组的程序引用名为OptionGroup1,则该选项按钮组的第一个选项按钮可表示为ThisForm.OptionGroup1.Buttons(1)。 (3)Value:当前选中的

30、选项按钮序号。例如在操作过程中,选中了第四个选项按钮,则Value的属性值为4。在程序代码中,经常利用该属性值来判断用户选择那一个选项按钮。,【例5-10】利用选项按钮组控制文本的对齐方式与字体,运行结果如图5-12所示。,八、 表格(Grid) 表格控件可以设置在表单或页面中,用于显示数据表中的数据,可以同时显示多个记录,用户可以修改表格中的数据。 一、表格的组成 (1)表格(Grid):由一列或若干列组成。 (2)列控件:一列可显示表的一个字段,列由标题控件和单元格控件组成。列的名称默认为ColumnX(X=1,2,3,)。 (3)列标题控件:其Caption属性的默认值为所对应的字段的字

31、段名,允许修改。其名称默认为Header1。 (4)单元格控件:该列中的每个单元格都可用此控件来显示字段值。默认为文本框,名称为Text1。,二、表格的常用属性 (l)ColumnCount:指定表格的列数。若取默认值-l,则在运行时,表格中的列数将与其链接的表中字段数相同。 (2)RecordSource:指定表格绑定的数据源,即要在表格中显示的表。 (4)RecordSourceType:指定表格数据源的类型。这些数据类型可以是:0-表、1-别名(默认设置)、2-提示、3-查询、4-SQL语句。 (5)RowHeight:表格中每一行的高度。 (6)AllowAddNew:指定是否允许用户

32、在运行时添加新纪录,默认值为.F.。当设为 .T.时,且光标在最后一个记录,当按下DownArow(下箭头)键,可向表中添加新记录。,三、列的常用属性 (1) ControlSource:指定列的绑定数据源,通常是表中的一个字段。 (2) CurrentControl:指定列对象中的哪一个控件用来显示活动单元格的值,默认值为Textl(文本框)。 (3) Sparse:取值为.T.(默认值)时,在列中只有选中的单元格以CurrentControl指定的控件显示,其他单元格仍以文本框显示。取值为.F.时,该列的所有单元格均以CurrentControl指定的控件显示。 四、设置表格数据源 用户既

33、可以为整个表格设置数据源,也可以为每个列单独设置数据源。主要有以下两种方法。 1利用表格生成器设置表格和列的数据源 2利用属性窗口设置整个表格的数据源,【例5-11】 创建表单,添加表格,利用表格浏览销售情况表。,九、计时器(Timer) 计时器控件能周期性地按时间间隔自动执行它的Timer事件代码,在应用程序中用来处理可能反复发生的动作。 计时器最重要的事件是Timer事件,每间隔一定的时间(在Interval属性中设置,单位为毫秒),就触发Timer事件一次。常用属性和事件如下: (l)Enabled:决定计时器是否计时。当设为.F.时,会挂起计时器的运行。利用此属性,可选择外部事件来启动计时器的操作。 (2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论