表单FORM和面向对象的程序设计课件

上传人:工**** 文档编号:578439704 上传时间:2024-08-24 格式:PPT 页数:67 大小:749.50KB
返回 下载 相关 举报
表单FORM和面向对象的程序设计课件_第1页
第1页 / 共67页
表单FORM和面向对象的程序设计课件_第2页
第2页 / 共67页
表单FORM和面向对象的程序设计课件_第3页
第3页 / 共67页
表单FORM和面向对象的程序设计课件_第4页
第4页 / 共67页
表单FORM和面向对象的程序设计课件_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《表单FORM和面向对象的程序设计课件》由会员分享,可在线阅读,更多相关《表单FORM和面向对象的程序设计课件(67页珍藏版)》请在金锄头文库上搜索。

1、第九章第九章 表单表单(FORMFORM)和面向对象的程序设计和面向对象的程序设计9.29.2 应用程序的组装应用程序的组装“模块模块”: VFPVFP类与对象类与对象9.19.1 表单及表单设计表单及表单设计9.3 9.3 表单对象的应用实例表单对象的应用实例9.4 9.4 设置表单或表单集模板(设置表单或表单集模板(Template)Template)1 1表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计9.1表单及表单设计表单及表单设计表单又叫表单又叫“窗体窗体”,提供给用户一个对数据查看、输入的屏幕,提供给用户一个对数据查看、输入的屏幕“界面界面”;提供了一个能

2、适应用户事件和系统事件的强有力的对象;提供了一个能适应用户事件和系统事件的强有力的对象集,使用户能方便地完成信息管理任务。集,使用户能方便地完成信息管理任务。一、表单的类型一、表单的类型1从创建单文档和多文档界面来分表单类型从创建单文档和多文档界面来分表单类型在在VFP中有两种应用程序界面:中有两种应用程序界面:多文档界面多文档界面(MDI)单文档界面单文档界面(SDI)第十章第十章表单(表单(FORM)和面向对象的程序设计)和面向对象的程序设计本章将介绍:表单、表单集的设计及应用;面向对象的程序设计;本章将介绍:表单、表单集的设计及应用;面向对象的程序设计;VFP中的类和对象。中的类和对象。

3、2 2表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计多文档界面多文档界面(MDI):由单一的主窗口组成,其它应用程序窗口:由单一的主窗口组成,其它应用程序窗口在主窗口中或浮动在主窗口之上。在主窗口中或浮动在主窗口之上。VFP本身就是一个本身就是一个MDI的窗口,的窗口,包含了命令窗口,编辑窗口和设计窗口等。包含了命令窗口,编辑窗口和设计窗口等。单文档界面单文档界面(SDI):由一个或多个相互独立的窗口组成,这些窗:由一个或多个相互独立的窗口组成,这些窗口单独显示。口单独显示。但也有一些应用程序综合了但也有一些应用程序综合了SDI和和MDI的特性,需要将的特性,需要将S

4、DI和和MDI混合使用。例如,混合使用。例如,VFP将调试器显示为一将调试器显示为一SDI应用程序,而它本身应用程序,而它本身又包含了自己的又包含了自己的MDI窗口窗口3 3表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计为了支持这两种类型的界面,为了支持这两种类型的界面,VFP允许创建以下几种类型的允许创建以下几种类型的表单:表单:子子表表单单(ChildForm):用用于于创创建建MDI窗窗口口中中一一个个表表单单,子子表表单单不不可可移移至至父父表表单单(主主表表单单)边边界界之之外外,当当其其最最小小化化时时将将显显示示在在MDI窗窗口口的底部。如主窗口最小化时

5、,它也一同最小化。的底部。如主窗口最小化时,它也一同最小化。浮浮动动表表单单(FloatingForm):属属于于一一主主表表单单,但但并并不不是是包包含含在在主主表表单单中中,它它可可以以移移至至屏屏幕幕的的任任何何位位置置,但但不不能能在在主主窗窗口口后后台台移移动动。最最小化时,它将显示在桌面的底部。当小化时,它将显示在桌面的底部。当MDI最小化,一同最小化。最小化,一同最小化。顶顶层层表表单单(Top-leveform):没没有有父父表表单单的的独独立立表表单单,用用于于创创建建一一个个SDI应应用用程程序序,或或用用作作MDI应应用用程程序序中中其其它它子子表表单单的的父父表表单单。

6、顶顶层层表表单单与与其其他他Windows应应用用程程序序同同级级,可可出出现现在在其其前前台台或或后后台台,并并且显示在且显示在Windows任务栏中。任务栏中。4 4表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计表单类型表单类型ShowWindow属性属性MDIFormDesktop主表单主表单2-作为顶层表单作为顶层表单.F.F.子表单子表单0-在屏幕中在屏幕中.T.最大化时子表单和父表单相连最大化时子表单和父表单相连.F.1-在顶层表单中在顶层表单中.F.最大化时子窗口为分开窗口最大化时子窗口为分开窗口浮动表单浮动表单0-在屏幕中在屏幕中.F.2-作为顶层表单

7、作为顶层表单.T.设置表单的下同类型:设置表单的下同类型:表表单单在在新新建建立立时时方方法法都都是是一一样样的的,只只有有通通过过更更改改表表单单的的属属性性可可以将表单设置为所需的类型以将表单设置为所需的类型1、新建三个表单,其属性设置如下:新建三个表单,其属性设置如下:5 5表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计表单文件名表单文件名 captionshowwindowsnameMidFormDesktop1、MdiForm.scxMdi表单表单2-作为顶层表单作为顶层表单frmMDI.F.F.2、ChilsForm.scx子表单子表单1-在顶层表单中在顶

8、层表单中frmchlid.T.F.3、FloatForm.scx浮动表单浮动表单0-在屏幕中在屏幕中frmfloat.F.T.2、修改表单,在表单文件、修改表单,在表单文件MdiForm.scx中添加二个命令按钮:其一中添加二个命令按钮:其一Caption分别为分别为“显示子菜单显示子菜单”,代码为,代码为DOFormChildForm.scx,另一为另一为“显示浮动菜单显示浮动菜单”,代码为,代码为DOFormFloatForm.scx三类表单演示操作让我们进行演示让我们进行演示,建立三个表单,分别为:建立三个表单,分别为:MDIform. scx、Childform . scx 、loat

9、Form . scx6 6表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计作为数据(库)表数据信息的输入、输出显示屏幕的界面作为数据(库)表数据信息的输入、输出显示屏幕的界面7 7表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2、从表单用途分类、从表单用途分类,主要有以下两类:作为应用程序主屏幕(主采单)的界面作为应用程序主屏幕(主采单)的界面8 8表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计文档管理信息系统文档管理信息系统输入输入修改修改检索检索删除删除打印、显示打印、显示退出退出按按分分类类号号按按分分类类号号按

10、按文文档档名名按按任任意意条条件件按按分分类类号号按按任任意意条条件件打打印印全全部部卡卡片片打打印印登登记记报报表表显显示示全全部部卡卡片片表单设计表单设计主菜单主菜单表单设计的表单设计的各种界面各种界面9 9表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计1010表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计1111表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计1212表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计三个表单1313表表单单(FORM)(FORM)和面向和面向对对象的程序象的

11、程序设计设计二、创建表单及表单集二、创建表单及表单集方法:方法:文件菜单笺文件菜单笺新建新建表单表单新文件(或向导)新文件(或向导)顶目管理器顶目管理器文档文档表单表单新建新建即可进入表单设计器即可进入表单设计器常使用表单向导(常使用表单向导(FormWizard)或表单设计器)或表单设计器(FormDesigner)来新建表单。)来新建表单。1、在表单设计器中用户自已设计表单、在表单设计器中用户自已设计表单1414表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计1515表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2、使用向导建立新表单、使用

12、向导建立新表单在表单向导对话框中,按提示(与使用其它向导一样)在表单向导对话框中,按提示(与使用其它向导一样)一步步选择完成。一步步选择完成。1616表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计1717表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计3、扩展表单为、扩展表单为表单集表单集表表单单集集是是由一个或多个表由一个或多个表单组单组成,可以作成,可以作为为一个整体一个整体单单元操作,可以同元操作,可以同时显时显示或示或隐隐蔽全部表蔽全部表单单。建立了一个表。建立了一个表单单集便可以集便可以对对它添加它添加多个多个表表单单。(1 1)建立

13、表单集方法:先建立一个表单,然后在)建立表单集方法:先建立一个表单,然后在“表单表单” ” 菜单中选择菜单中选择“创建表单集创建表单集”(Create Formset)(Create Formset)即建立了一个即建立了一个表单集。表单集。(2 2)添加和移除表单:可从)添加和移除表单:可从“表单表单”(Form)(Form)菜单选菜单选“添加新添加新表单表单”(Add New Form)(Add New Form)。为从表单集去掉一个表单,可以在。为从表单集去掉一个表单,可以在表单设计器底部的表单设计器底部的“表单表单”(Form)(Form)框选择表单,然后从框选择表单,然后从“表表单单”

14、(Form)(Form)菜单选菜单选“移除表单移除表单”(Remove Form)(Remove Form)。 (3 3)移除一个表单集:)移除一个表单集:可从表可从表单单(Form)(Form)菜菜单选单选“移除表移除表单单集集”(Remove Formset)(Remove Formset)。1818表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计四、创建表单集四、创建表单集表单集是一个或多个表单的表单集是一个或多个表单的“父亲父亲”容器。可对多个表单进容器。可对多个表单进行统一管理和使用。行统一管理和使用。一、创建表单集一、创建表单集新建或打开一个已存在的表单,在

15、主菜单笺新建或打开一个已存在的表单,在主菜单笺“表单表单”中选中选”创建表单集创建表单集”1919表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2020表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计二、添加、移除表单二、添加、移除表单在主菜单笺在主菜单笺“表单表单”中选中选”添加表单添加表单”或或“移除表单移除表单”2121表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2222表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2323表表单单(FORM)(FORM)和面向和面向对对象的程序象的程

16、序设计设计2424表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计4 4、设置数据环境、设置数据环境表单和表单集的数据源:表表单和表单集的数据源:表(Tables)(Tables)和视图和视图(Views)(Views),以,以及表之间的关系,用数据环境设计器来添加。及表之间的关系,用数据环境设计器来添加。在属性窗口中一般的数据环境属性设置如下:属性 描述缺省设置AutoCloseTables 当表或表单集释放时,控制是否表和真(.T.) 视图被关闭AutoOpenTables 当表单运行时,控制数据环境中的表真(.T.) 和视图是否打开InitialSelectedA

17、lias 当表单运行时,所选择的表或视图在设计时,如果没有指定,则选定在运行时第一个加到数据环境的临时表2525表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计三、添加和操作表单对象三、添加和操作表单对象步骤步骤每个表单都有相应的属性、事件、方法。常用表单控制每个表单都有相应的属性、事件、方法。常用表单控制工具栏、调色板工具栏、布局工具栏、属性窗口、数据环境等工具栏、调色板工具栏、布局工具栏、属性窗口、数据环境等进行设计。设计一个表单的步骤:进行设计。设计一个表单的步骤:(1)创建表单并设置表单的属性)创建表单并设置表单的属性(2)给表单添加适当的)给表单添加适当的容器

18、、容器、控件控件(3)设置)设置容器、容器、控件的属性控件的属性(4)编写事件代码)编写事件代码2626表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计选选定定对对象象查查看看类类标标签签文文本本框框编编辑辑框框命命令令按按钮钮命命令令按按钮钮组组选选项项按按钮钮组组复复选选框框组组合合框框列列表表框框微微调调控控件件表表格格图图象象计计时时器器页页框框ActiveActive控控件件绑绑定定控控件件线线条条形形状状容容器器分分隔隔符符超超级级链链接接生生成成器器锁锁定定按按钮钮锁锁定定通过通过“表单控制工具栏表单控制工具栏”添加对象到一个表单,对象可是:添加对象到一个

19、表单,对象可是:(1)(1)容器容器 (Container) (2) (Container) (2) 控件控件 (Controls)(Controls)(3)(3)用户自定义类用户自定义类 (4)OLE(4)OLE对象对象1、添加添加VFPVFP容器到表单:容器到表单:命令按命令按钮组钮组(Commandbuttongroup)表格表格(Grid)选项选项按按钮组钮组(Optionbuttongroup)页页框框(Pageframe)2727表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2 2、添加、添加VFPVFP控件到表单控件到表单:复复选选框框(Checkbox

20、)、组组合合框框(Combobox)、命命令令按按钮钮(Commandbutton)、编编辑辑框框(Edit box)、图图像像(Image)、标标签签(Label)、线线条条(Line)、列列表表框框(Listbox)、OLE绑绑定定型型控控件件(OLEBoundControl)、OLE容容器器控控件件(OLEContainerControl)、形形状状(Shape)、微微调调控控件件(Spinner)、文本框、文本框(Textbox)、记时器、记时器(Timer)。2828表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计功能和所选控件对应关系功能和所选控件对应关系功

21、能类型功能类型应该选择的控件应该选择的控件提供给用户预先设定的选择提供给用户预先设定的选择选择按钮组、列表框和下拉列选择按钮组、列表框和下拉列表框、复选框表框、复选框接受不能预先设定的用户输入接受不能预先设定的用户输入文本框、编辑框、组合框文本框、编辑框、组合框接受有一定值范围的输入接受有一定值范围的输入微调微调执行具有一定时间间隔的特定任务执行具有一定时间间隔的特定任务计时器计时器显示信息显示信息图像、标签、文本框、编辑框图像、标签、文本框、编辑框、形状、形状2929表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计操作练习:向表单添加控件操作练习:向表单添加控件1、图

22、像、标签、文本框、编辑框、形状。、图像、标签、文本框、编辑框、形状。2、用生成器锁定控件、按钮锁定控件给表单添加控件。、用生成器锁定控件、按钮锁定控件给表单添加控件。3、按钮组、列表框和下拉列表框、复选框、按钮组、列表框和下拉列表框、复选框4、微调、计时器、微调、计时器3030表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计9.2 面向应用程序的组装面向应用程序的组装“模块模块”:VFP类与对象类与对象在学习表单设计中,通过上机实践对面对象的程序设计已有在学习表单设计中,通过上机实践对面对象的程序设计已有了一定的认识,下面以表所示来小结:面向对象方法与结构程序设了一定的

23、认识,下面以表所示来小结:面向对象方法与结构程序设计方法之区别:计方法之区别:设方式方法设方式方法计方式计方式数据显示方式数据显示方式处理方式处理方式使用方式使用方式处理顺序处理顺序结构程序结构程序面向对象程序面向对象程序过程性(过程性(Process)对向性(对向性(Object)显示型显示型隐藏型隐藏型单一程序编码单一程序编码对象模块化对象模块化一次使用一次使用可以重用可以重用定位方式定位方式非定位方式非定位方式3131表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计设计方式设计方式指对问题处理的程序设计方式。指对问题处理的程序设计方式。1、过程性的设计思想中、过程

24、性的设计思想中是针对问题采用顺序性的程序处理决问题。是针对问题采用顺序性的程序处理决问题。采用逻辑概念设计程序文件。采用逻辑概念设计程序文件。在解决问题的过程中,常发生调用子过程程序文件。在解决问题的过程中,常发生调用子过程程序文件。2、面向对象程序设计方法,是采用、面向对象程序设计方法,是采用“对象对象”为设计思想中为设计思想中心。心。不采用顺序性处理方式,对问题采用了对象本身的属性不采用顺序性处理方式,对问题采用了对象本身的属性与方法来解决问题与方法来解决问题。在处理问题过程中,可以直接在对象中设计事件程序,直在处理问题过程中,可以直接在对象中设计事件程序,直接触发问题。接触发问题。323

25、2表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计一、一、VisualFoxPro中的对象中的对象1、什么是对象?什么是对象?对象是对象是VFP程序的基本构造块,对象具有属性(程序的基本构造块,对象具有属性(Properties)、)、方法(方法(Mathod)以及键盘、)以及键盘、鼠标或程序触发等的事件程序,通过属鼠标或程序触发等的事件程序,通过属性、事件和方法等等所组合而成的具体抽象实体,就称为对象。性、事件和方法等等所组合而成的具体抽象实体,就称为对象。而通过属性、事件和方法,可以实现一个对象的功能。而通过属性、事件和方法,可以实现一个对象的功能。2、对象的、对象

26、的属性、事件和方法属性、事件和方法“属性属性”(Properties)封装了数据,每个对象都具有封装了数据,每个对象都具有“属性属性”。“属性属性”值可以在设计时设置,也可以在运行时更改,但有的值可以在设计时设置,也可以在运行时更改,但有的“属性属性”是只读属性,不可改变。是只读属性,不可改变。“事件事件”(Events)是预先定义的动作,由用户或者系统激活。是预先定义的动作,由用户或者系统激活。VFP中的事件通常包括了键盘中的事件通常包括了键盘“事件事件”和鼠标和鼠标“事件事件”,如单击或,如单击或双击鼠标,移动鼠标、按键盘等(见双击鼠标,移动鼠标、按键盘等(见P247)。)。3333表表单

27、单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计“方法方法”(methods)是指对象为实现一定功能而编写的)是指对象为实现一定功能而编写的代码,代码,“方法方法”和对象相连。事件中的代码可以认为是基于事和对象相连。事件中的代码可以认为是基于事件的响应方法。但件的响应方法。但“方法方法”是可以独立于事件的单独代码,必是可以独立于事件的单独代码,必要时可以由其它方法或程序代码进行显示的调用。要时可以由其它方法或程序代码进行显示的调用。事件通常已经预先由系统定义好了,不能随便的扩充,而方事件通常已经预先由系统定义好了,不能随便的扩充,而方法和属性却可以无限的扩展,事件的发生具有一

28、定的顺序,法和属性却可以无限的扩展,事件的发生具有一定的顺序,如:如:load和和click,load在执行表单时就激活了,而在执行表单时就激活了,而click在执在执行表单后需单击命令按钮才激活。行表单后需单击命令按钮才激活。如:下例:如:下例:3434表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计FORM(事件事件):load代码:代码:thisform.backcolor=rgb(255,0,0)Command(事件事件):click代码:代码:thisform.label2.caption=abcdefg3535表表单单(FORM)(FORM)和面向和面向对对

29、象的程序象的程序设计设计执行表单文件,立即form的背景为红色。当单击command1,label1的值才显示出来。3636表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计二、二、VisualFoxPro中的类中的类VisualFoxPro中的对象的概念和类的概念是密切相关的,但中的对象的概念和类的概念是密切相关的,但是有区别的,类作为一个对象的整体定义而存在,它是对象的轮廓是有区别的,类作为一个对象的整体定义而存在,它是对象的轮廓和蓝图。和蓝图。对象和类的关系就如同一台机床和图纸的关系,图纸决定了对象和类的关系就如同一台机床和图纸的关系,图纸决定了某一种类型的机床的功

30、能和外观,而一台具体的机床可以看作一个某一种类型的机床的功能和外观,而一台具体的机床可以看作一个对象而存在。某种类型的,根据机床的初始设计图可以设计出一个对象而存在。某种类型的,根据机床的初始设计图可以设计出一个系列的机床产品图,这就如同由一个父类派生出若干子类一样,属系列的机床产品图,这就如同由一个父类派生出若干子类一样,属于某个系列的某一台具体的机床可以看作是一个具体的对象。于某个系列的某一台具体的机床可以看作是一个具体的对象。所有对象的属性、事件、方法在定义类时都将被指定。所有对象的属性、事件、方法在定义类时都将被指定。类的三大特性:封装性、继承性、再分类性(子类)。类的三大特性:封装性

31、、继承性、再分类性(子类)。3737表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计(1)封装性)封装性如一台电话只需一根电话如一台电话只需一根电话线连接就可以拨号使用,而不必线连接就可以拨号使用,而不必去了解电话内部的设置。你看到去了解电话内部的设置。你看到的是电话类的一个对象,其内部的是电话类的一个对象,其内部的接收、转换、电子信号的处理的接收、转换、电子信号的处理等复杂性(属性、事件、方法)等复杂性(属性、事件、方法)被隐藏了。被隐藏了。通过对事务的抽象,由类定义的对通过对事务的抽象,由类定义的对象可以将自己内部的复杂性封装起来。象可以将自己内部的复杂性封装起来。

32、封装就是指将对象的方法、属性代封装就是指将对象的方法、属性代码包装在一起。码包装在一起。图图1电话电话3838表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计如下图所示,如下图所示,“电话电话”种类可以有很多种,但都具有基类电话的基种类可以有很多种,但都具有基类电话的基本属性。即可从父电话类派生出一系列的子电话类,这些子类的形本属性。即可从父电话类派生出一系列的子电话类,这些子类的形状虽然有改变或新增加了一些属性(功能),但仍继承了父类的基状虽然有改变或新增加了一些属性(功能),但仍继承了父类的基本属性、事件和方法。本属性、事件和方法。图图2(2)继承性)继承性子类可以

33、继承父类的所有的属性和方法,也可根据需要加入新的属子类可以继承父类的所有的属性和方法,也可根据需要加入新的属性和方法。性和方法。3939表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计(3)再分类()再分类(SubClass)意义要于类(意义要于类(Class)本身可以不受层次的限制,往下扩展更)本身可以不受层次的限制,往下扩展更多的类,让子类继承上一层类的方法,并且有其本身的属性与方法多的类,让子类继承上一层类的方法,并且有其本身的属性与方法定义。这样使程序编码减至最低。甚至在修改时,只需要修改其中定义。这样使程序编码减至最低。甚至在修改时,只需要修改其中一层的类,其

34、子类(一层的类,其子类(SubClass)均自动调整。增加维护效率。)均自动调整。增加维护效率。如:如:IC产生掌上型扫描仪,又将掌上型扫描仪某一功能板装至桌产生掌上型扫描仪,又将掌上型扫描仪某一功能板装至桌上型扫描仪,最后又将桌上型扫描仪某一元件装至投影片扫描仪。上型扫描仪,最后又将桌上型扫描仪某一元件装至投影片扫描仪。Class:掌上型扫描仪:掌上型扫描仪SubClass:桌上型扫描仪、投影片扫描仪:桌上型扫描仪、投影片扫描仪图图34040表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计存贮该存贮该新建的命令子类,用于表单中实现新建的命令子类,用于表单中实现“退出退

35、出”功能。功能。其代码及其代码及caption的属性的属性“退出退出”都被封装,看不到了。而且继承了都被封装,看不到了。而且继承了命令按钮类(父类)的原已有的属性等。命令按钮类(父类)的原已有的属性等。2、类的创建、修改及使用、类的创建、修改及使用创建类有二种方法:用类设计器创建、通过写代码创建。创建类有二种方法:用类设计器创建、通过写代码创建。下面用类设计器来创建类(同时对类的三大特性进一步了解)下面用类设计器来创建类(同时对类的三大特性进一步了解)命令按钮类,命令按钮类,子类:代码:子类:代码:thisform.release由它创建由它创建创建:新建文件创建:新建文件类类新文件新文件类设

36、计器类设计器保存:文件类型为类保存:文件类型为类修改:打开修改:打开类类类文件名类文件名进入类设计器可修改。进入类设计器可修改。例例1:4141表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计例例2:创建:创建“电子查看电子查看”类类方法:新建表单方法:新建表单文件文件另存为类。另存为类。ifthis.parent.label1.left+this.parent.label1.width0this.parent.label1.left=this.parent.label1.left-20elsethis.parent.label1.left=this.parent.sh

37、ape1.widthendif自定义类演示4242表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计将整个表单另成为将整个表单另成为“电子查看电子查看”类(自定义类),类文件名为类(自定义类),类文件名为JZ.vcx4343表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计将生成的自定义类添加到类库将生成的自定义类添加到类库4444表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计4545表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计4646表表单单(FORM)(FORM)和面向和面向对对象的程序象的程

38、序设计设计操作:操作:1、新建表单集,拖放、新建表单集,拖放JZ到表单集(到表单集(bdj.scx),双击,双击“计时器计时器”,看不到代码,被封装。,看不到代码,被封装。2、执行结果,文本内容显示。、执行结果,文本内容显示。4747表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计3、打开、打开JZ类进行修改:删除文本类进行修改:删除文本“文档管理信息系统文档管理信息系统”,再打开,再打开表单集表单集(bdj.scx),可见其类,可见其类(JZ.vcx)自动被修改。自动被修改。4、以、以JZ.vcx为父类,创建子类为父类,创建子类jzz.vcx。(方法与例。(方法与例1

39、同)同)(可用例(可用例1建的类,代码:建的类,代码:thisformset.release)4848表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计5、拖放到表单集(、拖放到表单集(BDJ.SCX)form2中,增加文本中,增加文本执行执行4949表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计三、类的层次三、类的层次如书如书P2481、VFP的基类和层次的基类和层次书书P2492、容器、容器(container)类和控件类和控件(Control)类类VFP的类有两种主要类型:容器类和控件类。的类有两种主要类型:容器类和控件类。(1)容器类)容

40、器类容容器器类类包包含含其其它它对对象象,并并且且允允许许访访问问这这些些对对象象。见见表表9-8列列出出了各容器类所能包含的对象。了各容器类所能包含的对象。(2)控件类)控件类控控件件类类的的封封装装比比容容器器类类更更为为严严密密,但但因因此此损损失失了了一一些些灵灵活活性性。控件类没有控件类没有“Addobject”方法程序。方法程序。(”没有增加对象没有增加对象“)5050表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计四、对象的处理四、对象的处理1、在容器层次中引用对象、在容器层次中引用对象为为处处理理一一个个对对象象,需需要要知知道道它它相相对对于于容容器器

41、层层次次的的关关系系。例例如如,如如果果要要在在表表单单集集中中处处理理一一个个表表单单的的控控件件,则则需需要要引引用用表表单单集集、表表单单和和控控件。在其容器层次中引用对象好比给件。在其容器层次中引用对象好比给VFP提供这个对象的地址。提供这个对象的地址。(1)绝对引用)绝对引用通过提供通过提供对象的完整容器层次对象的完整容器层次来引用它:来引用它:命令:命令:frsFormSet.frmForm1.cmdButton1例例:为为了了让让表表格格列列(gridcolumn)中中的的控控件件不不起起作作用用,需需要要提提供供下下面面的地址:的地址:Formset.Form.PageFram

42、e.Page.Grid.column.Control.Enabled=.F.5151表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计(2)相对引用)相对引用在在容容器器层层次次中中引引用用对对象象时时,例例如如在在表表单单集集合合中中表表单单命命令令按按钮钮的的Click(单单击击)事事件件,可可以以通通过过快快捷捷键键方方式式指指明明所所要要处处理理的的对对象象。下下表表列列出出了了一一些些属属性性和和关关键键字字,这这些些属属性性和和关关键键字字允允许许更更方方便便地从对象层次中引用对象。地从对象层次中引用对象。属性或关键字属性或关键字引用引用Parent该对象的直

43、接容器。该对象的直接容器。THIS该对象。该对象。THISFORM包含该对象的表单。包含该对象的表单。THISFORMSET包含该对象的表单集。包含该对象的表单集。5252表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计应用:应用:命令命令何处包含此命令何处包含此命令THISFORMSET.frm1.cmd1.Caption=ABC在在此此表表单单集集合合的的任任何何表表单单上上任任何控件的事件或何控件的事件或 方法码中。方法码中。THISFORM.cmd1.Caption=ABC在在cmd1所所在在同同样样的的表表单单上上任任何何控件的事件或方控件的事件或方 法代码中

44、。法代码中。THIS.Caption=ABC在需要改变标题在需要改变标题 (caption)的控件的控件的事件或方法代码中。的事件或方法代码中。THIS.Parent.BackColor=RGB(192,0,0)在在表表单单上上一一个个控控件件的的事事件件或或方方法代码中,此命法代码中,此命 令令改改变变表表单单的的背景颜色为暗红色。背景颜色为暗红色。5353表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计2、设置属性语法:Parent.Object.Property=Value (即:父.对象.属性值)设置多个属性语法:WITHENDWITH例如,在表单集的一个表单中

45、,要设置表格列的多个属性,可以使用如下语法结构:WITH frsFormSet1.frmForm1.grdGrid1.grcColumn1.width=5.Resizable=.F.ForeColor=RGB(0,0,0).BackColor=RGB(255,255,255,).SelectOnEntry=.T.ENDWITH5454表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计3、调用方法、调用方法一一旦旦对对象象被被建建立立,就就可可以以在在应应用用程程序序的的任任何何一一个个地地方方调调用用此此对对象象的方法。调用方法的的方法。调用方法的语法如下:语法如下:Pa

46、rent.Object.Method(即:父即:父.对象对象.方法方法)例:调用显示一个表单的方法:例:调用显示一个表单的方法:frsFormset.frmForm1.Show4、响应事件、响应事件当事件发生时,该事件的过程代码将被执行。当事件发生时,该事件的过程代码将被执行。系系统统响响应应用用户户动动作作时时,事事件件将将被被自自动动触触发发。例例如如,当当用用户户单单击击一一个个控控件件时时,系系统统自自动动执执行行为为Click事事件件编编写写的的代代码码。事事件件代代码码也也能能由由系系统事件触发,例如在计时器控件中的统事件触发,例如在计时器控件中的Timer事件。事件。5555表表

47、单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计1核心事件核心事件下表列举了下表列举了VFP的核心事件集,并适用于多数控件:的核心事件集,并适用于多数控件:事件事件激发后动作激发后动作Load表单或表单集被加载进内存。表单或表单集被加载进内存。Unload表单或表单集从内存中释放。表单或表单集从内存中释放。Init对象被创建。对象被创建。Destroy对象从内存中释放。对象从内存中释放。Click用户用主鼠标按钮单击对象。用户用主鼠标按钮单击对象。DblClick用户用主鼠标按钮双击对象。用户用主鼠标按钮双击对象。RightClick用户用辅用户用辅(右右)鼠标按钮单击对象

48、。鼠标按钮单击对象。GotFocus对象接收焦点,由用户动作对象接收焦点,由用户动作(如按如按Tab键和单击键和单击),或者在代,或者在代码中使用码中使用SetFocus方法引起。方法引起。5656表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计LostFocus对象失去焦点,由用户动作对象失去焦点,由用户动作(如按如按Tab键和单击键和单击),或者在代,或者在代码中使用码中使用SetFocus方法引起。方法引起。KeyPress用户按下或释放一个键。用户按下或释放一个键。MouseDown当鼠标指针停在一个对象上时用户按下鼠标按钮。当鼠标指针停在一个对象上时用户按下鼠

49、标按钮。MouseMove用户在对象上移动鼠标。用户在对象上移动鼠标。MouseUp当鼠标指针停在一个对象上时用户释放鼠标按钮。当鼠标指针停在一个对象上时用户释放鼠标按钮。InteractiveChange交互式改变对象值。交互式改变对象值。ProgrammaticChange可编程地改变对象值。可编程地改变对象值。2VFP事件顺序事件顺序见见P2545757表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计3、编写事件代码、编写事件代码每个对象(控件)都可进行属性、事件、方法的设置,每个对象(控件)都可进行属性、事件、方法的设置,现在学习如何定义事件、如何给控件写入方法

50、代码。现在学习如何定义事件、如何给控件写入方法代码。例题例题1:设置表单:设置表单1(背景练习):其中有三个命令按钮控件,作用(背景练习):其中有三个命令按钮控件,作用分别为单击分别为单击COMMAND1时,表单时,表单1的背景图改变,单击的背景图改变,单击COMMAND2时,表单时,表单1的背景图又被改变,单击的背景图又被改变,单击COMMAND3时时,释放表单(关闭表单)。释放表单(关闭表单)。5858表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计方法代码方法代码thisform.picture=c:programfilesmicrosoftvisualstudi

51、ovfp98fox.bmpthisform.picture=c:programfilesmicrosoftvisualstudiovfp98wizardswizstone.bmpthisform.release事件事件:click背景练习背景练习5959表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计例题例题2:登录表单:登录表单6060表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计If thisform.text1.value=12345.and.thisform.text2.value=abcdo 文档管理信息系统.scxelsemessa

52、gebox(口令或用户名有错,请重输入!,0,提示)thisform.text1.setfocusendifthisform.text1.value= thisform.text2.value= thisform.text1.setfocusthisform.release登录表单演示登录表单演示6161表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计4、面向对象程序语法、面向对象程序语法(OOP).=如:如:thisform.text1.value=“12345”.and.thisform.text2.value=abcthisform.picture=c:progr

53、amfilesmicrosoftvisualstudiovfp98fox.bmp对象对象对象的属性或方式对象的属性或方式定义或结果定义或结果6262表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计5、信息窗口的送出使用了函数信息窗口的送出使用了函数MessageBox(),其语法如下:其语法如下:MESSAGEBOX(cMessageText,nDialogBoxTyoe,cTitleBarText)第一个参数:为定义信息窗口提示内容。第一个参数:为定义信息窗口提示内容。第二个参数:为定义信息窗口按钮组合与图标(第二个参数:为定义信息窗口按钮组合与图标(Icon)样式的

54、数据,样式的数据,一般为两个数字间以一般为两个数字间以“+”串联。第一个数字为信息窗口按钮组合,串联。第一个数字为信息窗口按钮组合,第二个为图标第二个为图标Icon类别。如类别。如4+48,表示按钮组合为,表示按钮组合为“是是”以及以及“否否”,48为警叹号。为警叹号。第三个参数:为信息窗口标题第三个参数:为信息窗口标题Caption内容定义。内容定义。例如:例如:MESSAGEBOX(请输入学号请输入学号,4+48,信息窗口信息窗口)6363表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计运行例运行例2登录表单登录表单,按确定按钮后按确定按钮后(口令和登录姓名错口令和

55、登录姓名错)的显示:的显示:Messagebox(口令或用户名有错,请重输入!口令或用户名有错,请重输入!,0,提示提示)Messagebox(口令或用户名有错,请重输入!口令或用户名有错,请重输入!,2,提示提示)Messagebox(口令或用户名有错,请重输入!口令或用户名有错,请重输入!,1,提示提示)6464表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计表单(表单(Form)或表单集()或表单集(Formset)对象常用语句:对象常用语句:Thisform.release 表单释放表单释放Thisform.refresh 表单刷新表单刷新Thisform.hi

56、de表单隐藏(对表单集中的一个表单)表单隐藏(对表单集中的一个表单)thisform.parent.form1.show表单显示(对表单集中的一表单显示(对表单集中的一个表单)个表单)6565表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计9.3 9.3 表单对象的应用实例表单对象的应用实例见见P264 P264 大学生通用习题测试系统大学生通用习题测试系统6666表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计9.4 9.4 设置表单或表单集模板设置表单或表单集模板(Template)Template)见P2746767表表单单(FORM)(FORM)和面向和面向对对象的程序象的程序设计设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号