1 / 33

第 7 章 面向对象程序设计

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

alexa
Télécharger la présentation

第 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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第 7 章 面向对象程序设计

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

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

  4. 7.1 面向对象程序设计基本概念 1.类 类是一类相似对象的抽象,是用来创建对象的模板。 2.对象:是类的实例,准确地讲,对象是一个软件实体。 VFP中,常用的基类对象共有21个,分为控件类与容器类两种。 (1)控件:是表单上显示数据和执行操作的基本对象,例如:命令按钮、文本框、标签等。 (2)容器:是可以容纳其他对象的对象。例如:表单集、表单、选项按钮组、命令按钮组等。 3.属性 对象的属性用来表示对象的特征、状态。 4.方法 对象的方法是对象内定的通用过程,能使对象执行一个操作。 5.事件 事件是一种预先定义的好的特定动作,可由用户或系统触发。 6.事件驱动的工作方式 某事件一旦被触发,系统就去执行该事件对应的过程,当然事件过程的代码需要用户事先编写好;过程执行完毕,则系统又处于等待状态。

  5. 容器及包含的对象

  6. Vfp部分常见事件列表

  7. 7.2 表单设计器 7.2.1表单设计器工具 1.表单设计器的功能与特点: (1)创建表单及表单上的各个对象。 (2)修改已有的表单。 (3)操作方便与可视化。 2.表单设计工具 可供表单设计使用的各要素与工具: (1)表单设计器窗口与表单窗口:多数设计工作将在表单窗口中完成。 (2)属性窗口:可以完成对象属性的设置与修改。 (3)代码编辑窗口:供用户编写事件或方法的程序代码。 (4)各种工具栏 (5)数据环境设计器窗口:为表单创建或修改数据环境。 (6)快捷菜单:不同对象有不同快捷菜单帮助完成经常性工作。 (7)动态菜单

  8. 表单设计器

  9. 7.2.2 表单的创建与表单设计器的操作 表单的创建一般步骤为:打开表单设计器→设置数据环境→添加对象→调整对象的位置→设置对象属性→编写事件代码→保存表单→执行表单。 例:为STAFF表创建一如图表单,以实现对表中记录的逐条浏览与编辑。 教师表浏览

  10. 1.打开表单设计器 2.设置数据环境 (1)数据环境概念 数据环境泛指定义表单或表单集使用的数据源,可以是表、视图和表间关系。 (2)数据环境设计器打开 打开数据环境设计器可使用表单快捷菜单的“数据环境”命令,或选定“显示”菜单的数据环境命令。 (3)数据环境设计器快捷菜单与数据环境菜单 数据环境菜单提供了几个命令,具有查看和修改数据环境的功能 ①添加命令 ②移去命令 ③浏览命令 例题数据环境的设置: ①选定表单快捷菜单的“数据环境”命令以打开数据环境设计器。 ②选定“添加表或视图”对话框的STAFF表,选定“添加”按钮。

  11. 3.对象的添加 在VFP中实现对象创建的主要工具是表单控件工具栏。 (1)表单控件工具栏 (2)对象的创建 (3)字段映象 字段映象:指当用户打开数据环境设计器窗口,选定表中的任一字段,将其拖至表单窗口中释放,将在对应位置产生两个对象,一个是标签对象,用来显示字段名或字段标题;另一个对象类型则取决定于字段类型,字符型、数值型、日期型等用文本框对象表示,逻辑型用复选框表示,备注型用编辑框表示,通用型用ActiveX绑定控件表示。而且该对象与字段数据自动实现数据绑定。 所谓数据绑定是指将对象的值与某个数据源联系在一起。这样对象的值便与数据源的值相一致,当对象的值被修改也就意味字段的值被修改,反之也一样。

  12. 选定对象 查看类 标签 文本框 编辑框 命令钮 命令按钮组 选项按钮组 复选框 组合框 列表框 微调控件 表格 图象 计时器 页框 Activex绑定控件(oleboundcontrol) Activex控件(olecontrol) 线条 形状 容器 分隔符 超级链接 按钮锁定 生成器锁pg定定 表单控件工具栏 例题对象的添加: ①利用字段映象功能往表单逐个添加字段对象。 ②单击表单控件工具栏的命令钮按钮,单击表单的对应位置,创建Command1对象,依照此方法再创建。 (4)四个辅助按钮 ①选定对象按钮②按钮锁定按钮③查看类 ④生成器锁定按钮

  13. 对象组合框 选项卡 4.调整控件的位置 5.设置对象的属性 属性窗口如图所示,包括对象组合框、选项卡、属性设置框、属性列表框、属性说明信息。 属性设置框 属性列表框 属性说明信息 属性窗口的组成

  14. 6.事件代码的编写 编写事件代码先要打开代码编辑窗口,打开某对象代码编辑窗口的方法有很多种,具体如下: 方法1:双击该对象。 方法2:选定该对象的快捷菜单的“代码”命令。 方法3:选定“显示”菜单的“代码”命令。 代码编辑窗口中包含两个组合框和一个窗口。 例题事件代码编写:Command1的Click事件代码编写如下: IF RECNO()>1 SKIP -1 THISFORM.REFRESH ELSE MESSAGEBOX("本条记录是首记录!") ENDIF

  15. 7.保存表单 表单设计或修改完毕要存盘,存盘方法如下: 保存表单而不退出表单设计器:选择“文件”菜单“保存”命令,若是新创建的表单要输入文件名。 保存表单并退出表单设计器:按Ctrl+W键或单击表单设计器的关闭按钮。若是新创建的表单要输入文件名。 表单文件保存后,将产生扩展名为.SCX的表单文件及扩展名为.SCT的表单备注文件。 8.执行表单 执行表单有多种方法,具体如下: 方法1.表单设计器未关闭时,表单快捷菜单的“执行表单”命令可运行表单。 方法2.用命令DO FORM 表单名 方法3.在项目管理器中选定要执行的表单→选定“运行”按钮。

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

  17. 7.3.1 在容器分层结构中引用对象 1.对象的容器层次 VFP的对象分为容器类和控件类,VFP规定,在容器分层结构中引用对象必须提供对象的地址,即指明它相对于容器分层结构的关系。图1是一种可能的嵌套。 2.对象相对引用规则 VFP为了方便在容器分层结构中引用对象,提供并规定了一些关键字及引用格式。 (1)引用关键字(图2) 3.引用格式 引用格式:引用关键字.对象名.对象的属性、事件或方法程序 (1)引用可以是单级的。例:THIS.Caption (2)引用也可以是多级的,但要逐级引用。例:THISFORM.Text1.Caption (3)控件也可引用包含它的容器。例:THIS.PARENT.Caption

  18. 容器嵌套层次 引用关键字

  19. 7.3.2 编程设置属性和调用方法程序 1.编程设置对象属性 设置格式:对象名.属性名=设置值 例:设计如图所示表单,单击“值交换”命令按钮可实现两文本框内值的交换,单击“背景交换”命令按钮可实现两文本框背景颜色的交换。 表单

  20. (1)创建表单:FORM1 (2)添加控件:往FORM1中添加两个标签控件、两个文框控件、两个命令按钮控件。 (3)按表所示为各控件对象设置属性。 (4)编写命令按钮的事件代码 (5) 存盘并运行。

  21. 2.编程调用对象方法程序 调用格式:格式:对象名.方法程序名[(参数1[,参数2[,……]])] (1)Cls方法 格式:OBJECT.Cls 功能:清除表单上的图形或文本。 (2)Print方法 格式:OBJECT.Print[(cText)] 功能:在表单上打印字符串。 例:建立如图7.8所示表单,单击“产生随机数”按钮,会在表单上显示10个0至100之间的随机整数,单击“排序”按钮,将在表单上显示对这10个数的排序结果,单击表单空白处则清除表单上显示的数据。

  22. (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)+","

  23. 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)

  24. 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

  25. 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()

  26. 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()

  27. 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()

  28. 2.为事件指定代码的位置 从上例可知,事件发生时,若没有与之相关联的代码,不会发生任何操作。 3.焦点(Focus) 在上例中有许多的事件发生都与焦点有关 4.TAB键次序 在表单运行时,用户可以使用TAB键来移动表单内光标的位置。所谓TAB键次序,就是按TAB键时光标经过表单中控件的顺序。

  29. 7.4 用户自定义属性和方法程序 7.4.1 用户定义属性 针对表单和表单集对象 , VFP允许用户向它们添加自定义的属性,用户自定义属性类似于变量。用户为某个表单定义的属性其作用范围就是该表单,其作用相当于在表单中定义的全局变量;用户在表单集中定义的属性其作用范围就是该表单集。 自定义属性分为变量属性和数组属性两种。 1.变量属性 (1)变量属性的创建 选定“表单”菜单的“新建属性”命令以打开新建属性对话框(图1) 。 (2)变量属性的编辑 选定表单菜单的“编辑属性/方法程序”命令可以打开“编辑属性/方法程序”对话框(图2)。

  30. 自定义属性 编辑自定义属性

  31. 2.数组属性 数组属性的创建、删除、引用格式及作用范围与变量属性一致。不同的是,数组属性在属性窗口中以只读方式显示,因而不能立即赋初初值。但用户仍可通过代码来管理数组,包括对数组属性的赋值、重新设置数组维数等。 7.4.2.用户定义方法程序 1.方法程序的创建 “表单”菜单中选择“新建方法程序”命令,打开的新建方法程序对话框与新建属性对话框类似。 2.过程代码的编写 方法程序创建后,并无代码。用户要为其添加代码,可以在表单的属性窗口中选定某个用户定义的方法,再双击它,即可打开代码编辑窗口对它进行编辑。

  32. 7.5 表单向导 1.打开表单向导 主要几个方法: 方法一:使用项目管理器 方法二:使用“工具”菜单 方法三:使用“文件”菜单 2.利用表单向导创建表单 例:使用表单向导创建一个能维护COURSE.DBF的表单。过程如图。

  33. 表单向导步骤一 表单向导步骤二 表单向导步骤四 表单向导步骤三

More Related