第
This presentation is the property of its rightful owner.
Sponsored Links
1 / 33

第 7 章 面向对象程序设计 PowerPoint PPT Presentation


  • 152 Views
  • Uploaded on
  • Presentation posted in: General

第 7 章 面向对象程序设计. 主要内容: 1 、面向对象程序设计的基本概念 2 、表单设计器及其操作方法 3 、表单数据环境及其操作方法 4 、各种控件共有的属性、方法和事件 5 、编程设置属性和调用方法 6 、带参事件及事件的触发顺序 7 、用户自定义属性和方法 8 、表单向导 重点: 1 、面向对象程序设计的基本概念 2 、表单设计器及其操作方法 3 、事件的触发顺序 4 、各种控件共有的属性、方法和事件.

Download Presentation

第 7 章 面向对象程序设计

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


7

第 7 章 面向对象程序设计


7

主要内容:1、面向对象程序设计的基本概念2、表单设计器及其操作方法3、表单数据环境及其操作方法4、各种控件共有的属性、方法和事件5、编程设置属性和调用方法6、带参事件及事件的触发顺序7、用户自定义属性和方法8、表单向导重点:1 、面向对象程序设计的基本概念2、表单设计器及其操作方法3、事件的触发顺序4、各种控件共有的属性、方法和事件


7

难点:1 、面向对象程序设计的基本概念2、事件的触发顺序及触发方式3、用户自定义属性和方法要求:1、掌握面向对象程序设计的基本概念2、学会使用表单设计器设计表单3、掌握表单数据环境的概念及其操作方法4、掌握各种控件共有的属性、方法和事件5、掌握编程设置属性和调用方法的方法6、了解带参事件代码的编写、掌握事件的触发顺序7、了解用户自定义属性和方法8、学会使用表单向导创建表单,并进一步使用表单设计 器进行修改的方法


7

7.1 面向对象程序设计基本概念

1.类

类是一类相似对象的抽象,是用来创建对象的模板。

2.对象:是类的实例,准确地讲,对象是一个软件实体。

VFP中,常用的基类对象共有21个,分为控件类与容器类两种。

(1)控件:是表单上显示数据和执行操作的基本对象,例如:命令按钮、文本框、标签等。

(2)容器:是可以容纳其他对象的对象。例如:表单集、表单、选项按钮组、命令按钮组等。

3.属性

对象的属性用来表示对象的特征、状态。

4.方法

对象的方法是对象内定的通用过程,能使对象执行一个操作。

5.事件

事件是一种预先定义的好的特定动作,可由用户或系统触发。

6.事件驱动的工作方式

某事件一旦被触发,系统就去执行该事件对应的过程,当然事件过程的代码需要用户事先编写好;过程执行完毕,则系统又处于等待状态。


7

容器及包含的对象


7

Vfp部分常见事件列表


7

7.2 表单设计器

7.2.1表单设计器工具

1.表单设计器的功能与特点:

(1)创建表单及表单上的各个对象。

(2)修改已有的表单。

(3)操作方便与可视化。

2.表单设计工具

可供表单设计使用的各要素与工具:

(1)表单设计器窗口与表单窗口:多数设计工作将在表单窗口中完成。

(2)属性窗口:可以完成对象属性的设置与修改。

(3)代码编辑窗口:供用户编写事件或方法的程序代码。

(4)各种工具栏

(5)数据环境设计器窗口:为表单创建或修改数据环境。

(6)快捷菜单:不同对象有不同快捷菜单帮助完成经常性工作。

(7)动态菜单


7

表单设计器


7 2 2

7.2.2 表单的创建与表单设计器的操作

表单的创建一般步骤为:打开表单设计器→设置数据环境→添加对象→调整对象的位置→设置对象属性→编写事件代码→保存表单→执行表单。

例:为STAFF表创建一如图表单,以实现对表中记录的逐条浏览与编辑。

教师表浏览


7

1.打开表单设计器

2.设置数据环境

(1)数据环境概念

数据环境泛指定义表单或表单集使用的数据源,可以是表、视图和表间关系。

(2)数据环境设计器打开

打开数据环境设计器可使用表单快捷菜单的“数据环境”命令,或选定“显示”菜单的数据环境命令。

(3)数据环境设计器快捷菜单与数据环境菜单

数据环境菜单提供了几个命令,具有查看和修改数据环境的功能

①添加命令 ②移去命令 ③浏览命令

例题数据环境的设置:

①选定表单快捷菜单的“数据环境”命令以打开数据环境设计器。

②选定“添加表或视图”对话框的STAFF表,选定“添加”按钮。


7

3.对象的添加

在VFP中实现对象创建的主要工具是表单控件工具栏。

(1)表单控件工具栏

(2)对象的创建

(3)字段映象

字段映象:指当用户打开数据环境设计器窗口,选定表中的任一字段,将其拖至表单窗口中释放,将在对应位置产生两个对象,一个是标签对象,用来显示字段名或字段标题;另一个对象类型则取决定于字段类型,字符型、数值型、日期型等用文本框对象表示,逻辑型用复选框表示,备注型用编辑框表示,通用型用ActiveX绑定控件表示。而且该对象与字段数据自动实现数据绑定。

所谓数据绑定是指将对象的值与某个数据源联系在一起。这样对象的值便与数据源的值相一致,当对象的值被修改也就意味字段的值被修改,反之也一样。


7

选定对象

查看类

标签

文本框

编辑框

命令钮

命令按钮组

选项按钮组

复选框

组合框

列表框

微调控件

表格

图象

计时器

页框

Activex绑定控件(oleboundcontrol)

Activex控件(olecontrol)

线条

形状

容器

分隔符

超级链接

按钮锁定

生成器锁pg定定

表单控件工具栏

例题对象的添加:

①利用字段映象功能往表单逐个添加字段对象。

②单击表单控件工具栏的命令钮按钮,单击表单的对应位置,创建Command1对象,依照此方法再创建。

(4)四个辅助按钮

①选定对象按钮②按钮锁定按钮③查看类 ④生成器锁定按钮


7

对象组合框

选项卡

4.调整控件的位置

5.设置对象的属性

属性窗口如图所示,包括对象组合框、选项卡、属性设置框、属性列表框、属性说明信息。

属性设置框

属性列表框

属性说明信息

属性窗口的组成


7

6.事件代码的编写

编写事件代码先要打开代码编辑窗口,打开某对象代码编辑窗口的方法有很多种,具体如下:

方法1:双击该对象。

方法2:选定该对象的快捷菜单的“代码”命令。

方法3:选定“显示”菜单的“代码”命令。

代码编辑窗口中包含两个组合框和一个窗口。

例题事件代码编写:Command1的Click事件代码编写如下:

IF RECNO()>1

SKIP -1

THISFORM.REFRESH

ELSE

MESSAGEBOX("本条记录是首记录!")

ENDIF


7

7.保存表单

表单设计或修改完毕要存盘,存盘方法如下:

保存表单而不退出表单设计器:选择“文件”菜单“保存”命令,若是新创建的表单要输入文件名。

保存表单并退出表单设计器:按Ctrl+W键或单击表单设计器的关闭按钮。若是新创建的表单要输入文件名。

表单文件保存后,将产生扩展名为.SCX的表单文件及扩展名为.SCT的表单备注文件。

8.执行表单

执行表单有多种方法,具体如下:

方法1.表单设计器未关闭时,表单快捷菜单的“执行表单”命令可运行表单。

方法2.用命令DO FORM 表单名

方法3.在项目管理器中选定要执行的表单→选定“运行”按钮。


7

7.3 事件代码编写

VFP的事件代码由VFP命令、属性设置语句、方法与事件的调用语句构成。


7 3 1

7.3.1 在容器分层结构中引用对象

1.对象的容器层次

VFP的对象分为容器类和控件类,VFP规定,在容器分层结构中引用对象必须提供对象的地址,即指明它相对于容器分层结构的关系。图1是一种可能的嵌套。

2.对象相对引用规则

VFP为了方便在容器分层结构中引用对象,提供并规定了一些关键字及引用格式。

(1)引用关键字(图2)

3.引用格式

引用格式:引用关键字.对象名.对象的属性、事件或方法程序

(1)引用可以是单级的。例:THIS.Caption

(2)引用也可以是多级的,但要逐级引用。例:THISFORM.Text1.Caption

(3)控件也可引用包含它的容器。例:THIS.PARENT.Caption


7

容器嵌套层次

引用关键字


7 3 2

7.3.2 编程设置属性和调用方法程序

1.编程设置对象属性

设置格式:对象名.属性名=设置值

例:设计如图所示表单,单击“值交换”命令按钮可实现两文本框内值的交换,单击“背景交换”命令按钮可实现两文本框背景颜色的交换。

表单


7

(1)创建表单:FORM1

(2)添加控件:往FORM1中添加两个标签控件、两个文框控件、两个命令按钮控件。

(3)按表所示为各控件对象设置属性。

(4)编写命令按钮的事件代码

(5) 存盘并运行。


7

2.编程调用对象方法程序

调用格式:格式:对象名.方法程序名[(参数1[,参数2[,……]])]

(1)Cls方法

格式:OBJECT.Cls

功能:清除表单上的图形或文本。

(2)Print方法

格式:OBJECT.Print[(cText)]

功能:在表单上打印字符串。

例:建立如图7.8所示表单,单击“产生随机数”按钮,会在表单上显示10个0至100之间的随机整数,单击“排序”按钮,将在表单上显示对这10个数的排序结果,单击表单空白处则清除表单上显示的数据。


7

(1)新建表单FORM1

(2)往FORM1中添加两个命令按钮控件,并修改其CAPTION属性。

(3)表单的LOAD事件编码:

public a(10) &&定义全局变量数组A(10)图7.8例7.3表单

(4)“产生随机数”按钮的CLICK事件编码:

temp=""

thisform.currentx=2

thisform.currenty=10

thisform.print("10个随机数是:")

for i=1 to 10

a(i)=int(rand()*100) &&产生10个100以内的随机整数,放在数组A(10)中

temp=temp+str(a(i),3)+","


7

endfor

thisform.currentx=4

thisform.currenty=30

thisform.print(temp)

(5)“排序”按钮的CLICK事件编码:

temp=""

thisform.currentx=2

thisform.currenty=50

thisform.print("排序如下:")

for i=1 to 9 &&利用双重循环,实现数组元素排序

for j=i+1 to 10

if a(i)>a(j)

p=a(i)


7

a(i)=a(j)

a(j)=p

endif

endfor

endfor

for i=1 to 10

temp=temp+str(a(i),3)+","

endfor

thisform.currentx=4

thisform.currenty=70

thisform.print(temp)

(6)表单的CLICK事件编码:

thisform.cls &&清空表单上显示的数据

(7)表单的UNLOAD事件编码:

release a


7 3 3 vfp

7.3.3 VFP的事件序列

1.事件序列

VFP是事件驱动的工作方式,VFP的事件或者由用户动作触发或者由系统触发,用户的一个动作可能触发一个或多个事件。这些事件的发生有一定的次序。

例:表单界面如图7.9,有一个命令钮Command1与一个文本框Text1,在表单数据环境中有表STAFF.DBF,用户的动作如下

动作1:运行表单Form1;

Form1.Load()

Form1.dataenvironment.cursor1.Init()

Form1.dataenvironment.Init()

Form1.text1.Init()

Form1.command1.Init()

Form1.Init()


7

Form1.Activate()

Form1.text1.When()

Form1.GotFocus()

Form1.text1.GotFocus()

Form1.Activate()

动作2:在Text1中输入字符AB;

Form1.text1.KeyPress(65, 0) &&即A

Form1.text1.InteractiveChange()

Form1.text1.KeyPress(66, 0) &&即B

Form1.text1.InteractiveChange()

动作3:用户单击Command1关闭表单;

Form1.text1.Valid()


7

Form1.command1.When()

Form1.text1.LostFocus()

Form1.command1.GotFocus()

Form1.command1.Click()

Form1.command1.Valid()

Form1.command1.When() 表单关闭和释放对象之后,将发生的事件,其次序正好与动作1中的事件次序相反。

Form1.Destroy()

Form1.command1.Destroy()

Form1.text1.Destroy()

Form1.Unload()

Form1.dataenvironment.AfterCloseTables()

Form1.dataenvironment.Destroy()

Form1.dataenvironment.cursor1.Destroy()


7

2.为事件指定代码的位置

从上例可知,事件发生时,若没有与之相关联的代码,不会发生任何操作。

3.焦点(Focus)

在上例中有许多的事件发生都与焦点有关

4.TAB键次序

在表单运行时,用户可以使用TAB键来移动表单内光标的位置。所谓TAB键次序,就是按TAB键时光标经过表单中控件的顺序。


7

7.4 用户自定义属性和方法程序

7.4.1 用户定义属性

针对表单和表单集对象 , VFP允许用户向它们添加自定义的属性,用户自定义属性类似于变量。用户为某个表单定义的属性其作用范围就是该表单,其作用相当于在表单中定义的全局变量;用户在表单集中定义的属性其作用范围就是该表单集。

自定义属性分为变量属性和数组属性两种。

1.变量属性

(1)变量属性的创建

选定“表单”菜单的“新建属性”命令以打开新建属性对话框(图1) 。

(2)变量属性的编辑

选定表单菜单的“编辑属性/方法程序”命令可以打开“编辑属性/方法程序”对话框(图2)。


7

自定义属性

编辑自定义属性


7

2.数组属性

数组属性的创建、删除、引用格式及作用范围与变量属性一致。不同的是,数组属性在属性窗口中以只读方式显示,因而不能立即赋初初值。但用户仍可通过代码来管理数组,包括对数组属性的赋值、重新设置数组维数等。

7.4.2.用户定义方法程序

1.方法程序的创建

“表单”菜单中选择“新建方法程序”命令,打开的新建方法程序对话框与新建属性对话框类似。

2.过程代码的编写

方法程序创建后,并无代码。用户要为其添加代码,可以在表单的属性窗口中选定某个用户定义的方法,再双击它,即可打开代码编辑窗口对它进行编辑。


7

7.5 表单向导

1.打开表单向导

主要几个方法:

方法一:使用项目管理器

方法二:使用“工具”菜单

方法三:使用“文件”菜单

2.利用表单向导创建表单

例:使用表单向导创建一个能维护COURSE.DBF的表单。过程如图。


7

表单向导步骤一

表单向导步骤二

表单向导步骤四

表单向导步骤三


  • Login