面向对象程序设计及表单设计.ppt
《面向对象程序设计及表单设计.ppt》由会员分享,可在线阅读,更多相关《面向对象程序设计及表单设计.ppt(135页珍藏版)》请在三一办公上搜索。
1、第九章 面向对象程序设计及表单设计目录,9.1 面向对象程序设计的概念9.2 Visual FoxPro中的类9.3 Visual FoxPro中对象的操作9.4 表单设计 9.5 常用表单控件9.6自定义类的创建与使用,2023/10/31,经济与管理学院,2,例:设计一个窗口,如下图所示窗口中包含两个文本框,用于输入数据,还有一个命令按纽,单击它可以将两个文本框中的数相加,并在等号右边显示结果,9.1 面向对象程序设计的概念,在VFP中,窗口叫做“表单”,表单的扩展名为.scx。,2023/10/31,经济与管理学院,3,CLICK事件代码:,thisform.label3.caption
2、=alltrim(str(val(thisform.text1.value)+val(thisform.text2.value),2023/10/31,经济与管理学院,4,事件驱动,WINDOWS程序设计主要采用的是事件驱动的方法。事件是由事件发生者触发和控制的。程序员只能定义这些事件的执行代码,主要由用户控制事件的发生顺序。,2023/10/31,经济与管理学院,5,面向对象的理论首先把现实世界中的各种事物,划分为不同的类(Class),类是抽象的概念。类有“状态”和“行为”,“状态”是类的静态属性,但可以通过动态的“行为”来改变。一个类的具体实例就是对象(Object)。类是抽象的,而对象
3、是具体的。对象具有该类的状态和行为。,2023/10/31,经济与管理学院,6,9.1.2 对象(object)客观世界里的任何实体都可以被看作是对象。对象可以是具体的物,也可以指某些概念。从编程的角度来看,对象是一种将数据和操作过程结合在一起的数据结构,或者是一种具有属性(数据)和方法(过程和函数)的集合体。事实上程序中的对象就是对客观世界中对象的一种抽象描述。,2023/10/31,经济与管理学院,7,一般对象具有如下属性:,(1)属性(Property):属性用来表示对象的状态。在程序设计中,类或对象的“状态”或特征称为属性。属性具有属性名和属性值,通过属性名,可以访问属性值,或为属性赋
4、值。(2)事件(Event):类或对象可能执行或发生的行为称为事件。,2023/10/31,经济与管理学院,8,(3)事件过程(Event Procedure):即对象响应某个事件所执行的程序代码。程序代码是为处理特定的事件而编写的一段程序,也称为事件代码。面向对象的程序设计的核心思路,就是为这些事件书写程序代码,在代码中改变对象的一些属性值,并让对象做出我们所期望的反应。(4)方法(Method):又称方法程序,是描述对象行为的过程。即指对象所固有的完成某种任务的功能,是对象能够执行的一个操作。因此,“方法”类似于面向过程程序设计中的“过程”和“函数”。,VFP的一些常用方法:RELEASE
5、:从内存中释放表单或表单集。Show:显示表单Setfocus:为一个控件指定焦点Hide:隐藏表单、表单集和工具栏Quit:推出VFP的一个实例。,2023/10/31,经济与管理学院,9,从面向对象的理论看,“方法”与“事件”本质上是相同的。“事件”可以看成系统预先定义的空“方法”,可以在事件中调用用户定义的方法,也可以在用户自定义方法中激活特定事件。但在VFP中,“方法”在很多情况下更基本,因为VFP预先定义了一些方法,可以在事件中调用它们,而它们一般不调用事件。,2023/10/31,经济与管理学院,10,类(class)1.概念 类是对一类相似对象的性质描述,这些对象具有相同种类的属
6、性以及方法。为了便于开发系统,面向对象的开发工具一般都会提供很多预先定义好的类和对象,并为这些类和对象预先设置足够多的属性和事件,以及足够多的方法,供程序员自由调用。,2023/10/31,经济与管理学院,11,类的结构,Eg:TEXTBOX类的一些常用属性:Alignment:设置文本的对齐方式。Fontsize:指定字体的大小。Value:文本框中的任何数据类型的值,或者字段或变量的数据类型。,2023/10/31,经济与管理学院,12,2.子类与继承 在面向对象的方法里,继承就是一个类可以在另一个类的基础上建立,继承该类的所有属性和事件。被继承的类称为父类,继承父类建立的类称为子类。在子
7、类中,不仅可以继承父类的所有特性,而且还可以增加自己的属性和方法程序。一个子类的成员一般包括:(1)从其父类继承的属性和方法;(2)由子类自己定义的属性和方法。,2023/10/31,经济与管理学院,13,类可以实现多层次的继承关系。例如:类继承了类,类又继承了类。因此,类既是类的子类,也是类的父类。在一个层次结构中,如果有一个类,所有的其他的类都是由它直接或间接派生出来的,这个类就称为基类。,2023/10/31,经济与管理学院,14,2.类的特性,(1)抽象:指用语言对需要用程序解决问题的现实世界进行建模,在计算机上模拟现实世界。(2)封装:将对象的方法程序和属性包装在一起的方法,称为封装
8、。(3)继承:子类沿用父类特征的能力。(4)多态:是指两个相关的对象解释同一个命令,但是同一个命令产生的动作却不同。,封装可以将操作对象的内部负责性与应用程序的其他部分隔离开来。Eg:当用户对一个标签对象设置CAPTION属性时,不必了解标题字符串是如何存储的。,2023/10/31,经济与管理学院,15,9.2 Visual FoxPro中的类,Visual FoxPro基类是系统本身内含的,并不存放在某个类库中。用户可以基于基类生成所需要的对象,也可以扩展基类创建自己的子类。,2023/10/31,经济与管理学院,16,9-1 Visual Foxpro基类 列表,2023/10/31,经
9、济与管理学院,17,类的分类:按照用类创建的对象是否可视来划分,VFP的类可分为:可视类和不可视类;按照类中能否放置其他类的对象来划分,可以分为:容器类和控件类(非容器类),2023/10/31,经济与管理学院,18,容器类:可以包含其他对象,并且允许访问这些对象。容器类所能包含的对象见P218表9-2;控件类:可创建包含其他被保护对象的控件对象,是用以显示数据、执行操作或使表单更易阅读的一种图形对象。可以使用“表单设计器”的“表单控件”工具栏在表单上绘制控件。VFP中常用控件见P218表9-3。,2023/10/31,经济与管理学院,19,VFP中的每一个类,都具有至少个事件,见P219表9
10、-5;所有这些基类,都至少具有个属性,见P219表9-4。,2023/10/31,经济与管理学院,20,9.3.1 创建对象 在程序设计中,可以使用CREATEOBJECT函数来直接生成基于某个类的对象。该函数的格式如下:CREATEOBJECT(,)函数基于指定的类生成一个对象,并返回对象的引用。,9.3 Visual FoxPro中对象的操作,2023/10/31,经济与管理学院,21,类名可以是基类,也可以是自定义类。用CreateObject()函数创建的对象是不可见的,可以使用下面的语句使其可见。Object.show或Object.visible=.T.,2023/10/31,经济
11、与管理学院,22,Eg:formwelcome=createobject(“form”)formwelcome.show 或:formwelcome.visible=.t.,2023/10/31,经济与管理学院,23,9.3.2 对象访问对象属性访问以及对象方法调用的基本格式如下:.(参数列表),绝对引用和相对引用(后述),2023/10/31,经济与管理学院,24,【例9-1】基于Visual FoxPro的FORM类生成一个对象,然后访问该对象的一些属性和方法。Oform=CREATEOBJECT(Form)&生成一个空白表单Oform.show&显示表单Oform.caption=”演示
12、”&修改表单的标题?”这是一个生成对象的演示程序”&在表单上输出字符串Oform.release,2023/10/31,经济与管理学院,25,9.3.3 容器与控件 Visual FoxPro 中的类一般可分为两种类型:容器类和控件类。相应地,可分别生成容器(对象)和控件(对象)。容器可以被认为是一种特殊的控件,它能包容其他的控件或容器。控件是一个可以以图形化的方式显示出来,并能与用户进行交互的对象,控件类不能包含其它对象。,2023/10/31,经济与管理学院,26,VFP中的所有容器对象都有与它们相关联的记数属性和收集属性。收集属性是引用其每个被包含对象的数组,记数属性是指其包含的对象数的
13、数值属性。每个容器的收集和记数属性根据包含在容器中的对象类型来命名,表9-2列出了容器及其相应的收集和记数属性。,2023/10/31,经济与管理学院,27,2023/10/31,经济与管理学院,28,容器对象作为父对象,可以包含子对象,子对象如果是容器对象,还可以包含下一级子对象,形成对象的层次关系,在VFP中,对象是通过容器的层次关系来引用的。引用分为绝对引用和相对引用。(1)绝对引用:从最高容器开始逐层向下直到某个对象为止的引用称为绝对引用。见P225例题9-4,2023/10/31,经济与管理学院,29,(2)相对引用:从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到另一对
14、象的引用称为相对引用 使用相对引用常用到表9-3所列属性或关键字。,2023/10/31,经济与管理学院,30,表9-3 相对引用关键字,2023/10/31,经济与管理学院,31,【例】如果Form1中有一个命令按钮组commandgroup1,该命令按钮组有两个命令按钮:command1 和command2,label1是表单form1上的一个标签控件。如果要在命令按钮command1的事件(如单击事件)代码中修改该按钮的标题可用下列命令:this.caption=”确定”,2023/10/31,经济与管理学院,32,如果要在命令按钮command1的事件代码中修改命令按钮command2
15、的标题可用下列命令:thisform.Cmand2.caption=取消或者mand2.caption=取消但不能写成下列命令:mand2.caption=取消,2023/10/31,经济与管理学院,33,如果要在命令按钮command1的事件代码中修改表单的标题可用下列命令:This.Parent.parent.Caption=”测试窗口”或者thisform.caption=”测试窗口”,2023/10/31,经济与管理学院,34,2023/10/31,经济与管理学院,35,9.3.4 事件 事件是一种由系统预先定义而由用户或系统发出的动作。事件作用于对象,对象识别事件并作出相应反应。即类
16、或对象可能执行或发生的行为称为事件(EVENT)与方法集可以无限扩展不同,事件集是固定的,用户不能定义新的事件。,2023/10/31,经济与管理学院,36,Visual FoxPro中常用事件有:,Load:,当表单或表单集被加载到内存中时发生的事件。,Unload:,从内存中释放表单或表单集时发生的事件。,Init:,创建对象时发生的事件。,Destroy:,从内存中释放对象时发生的事件。,Click:,鼠标左键单击对象时发生的事件。,2023/10/31,经济与管理学院,37,DbClick:,鼠标左键双击对象时发生的事件。,Rightclick:,鼠标右键单击对象时发生的事件。,Got
17、Focus:,对象接收到焦点时发生的事件。,LostFocus:,对象失去焦点时发生的事件。,KeyPress:,当用户按下或释放键时发生的事件。,2023/10/31,经济与管理学院,38,InteractiveChange:,以交互方式改变对象的值时发生的事件。,ProgrammaticChange:,以编程方式改变对象的值时发生的事件。,2023/10/31,经济与管理学院,39,一个常用对话框函数Messagebox(),Messagebox()函数是一个与用户传送信息的内部函数,用于显示一个用户定义的对话框。它不但能给用户传递信息,同时还可以通过用户在对话框上的选择接收到用户的响应,
18、作为继续执行程序的依据。使用格式;messagebox(显示信息,对话框类型,标题条文本),2023/10/31,经济与管理学院,40,1.对话框的显示信息 messagebox()函数中的显示信息将出现在激活的对话框中,在信息字符串中若要显示多行,则可以在文本中包含回车字符(chr(13)以移动其后的信息串到对话框中的下一行。,2023/10/31,经济与管理学院,41,2.对话框的类型 对话框类型参数实质上是由三部分组成:按钮类型(05)、图标类型(1664)和焦点选项(0512)。每一类只能选择一个值,将从三类中所选出的值相加在一起就是messagebox()函数中对话框类型参数的值。如
19、果省略该参数,则对话框内只能显示一个缺省的确定按钮,并将此按钮设置为缺省按钮,且无图表显示出来。,2023/10/31,经济与管理学院,42,表1 按钮类型,2023/10/31,经济与管理学院,43,表2 图标类型,2023/10/31,经济与管理学院,44,表3 焦点选项,2023/10/31,经济与管理学院,45,3、标题条文本(对话框标题),默认值是“Microsoft Visual Foxpro”,2023/10/31,经济与管理学院,46,例:?messagebox(这是对话框+chr(13)+中的文字,16,这是标题),2023/10/31,经济与管理学院,47,Messageb
20、ox()函数的返回值是整数,对应用户按了哪个按纽。返回值和按纽的对应关系如下表。,返回值 对应按纽,返回值 对应按纽,1234,确定取消放弃重试,567,忽略是否,2023/10/31,经济与管理学院,48,例1:a=messagebox(是、否、取消按纽和问号图标,3+32)例2:b=messagebox(“重试、取消按纽和信息图标,第二个按纽为默认按纽”,5+64+256),2023/10/31,经济与管理学院,49,9.4 表单设计,9.4.1 表单的基本操作 表单(Form)是Visual FoxPro提供的用于建立应用程序界面的最主要的工具之一。表单相当于WINDOWS应用程序的窗口
21、 表单可以属于某个项目,也可以游离于任何项目之外,它是一个特殊的磁盘文件,其扩展名为.scx。在项目管理器中创建的表单自动隶属于该项目。,2023/10/31,经济与管理学院,50,使用表单向导创建简易的数据表单;,1.建立表单创建表单一般有两种途径:,设计器创建或修改任何形式的表单。,2023/10/31,经济与管理学院,51,启动表单向导有以下四种途径:,打开“项目管理器”,选择“文档”选项卡,从中选择“表单”。然后单击“新建”按钮。在弹出的“新建表单”对话框中单击“表单向导”按钮。,在系统菜单中选择【文件】|【新建】命令,或者单击工具栏上的“新建”按钮,打开“新建”对话框,在文件类型栏中
22、选择“表单”。然后单击“向导”按钮。,用表单向导设计表单:,2023/10/31,经济与管理学院,52,在系统菜单中选择【工具】|【向导】|【表单】命令。,直接单击常用工具栏上的“表单向导”图标按钮。,2023/10/31,经济与管理学院,53,启动表单设计器有三种方法:,用表单设计器设计表单:,菜单方法:若是新建表单,在系统菜单中选择【文件】|【新建】,在文件类型对话框中选择“表单”,单击“新建文件”按钮;若是修改表单,则单击【文件】|【打开】,在打开对话框中选择要修改的表单文件名,单击“打开”按钮。,2023/10/31,经济与管理学院,54,命令方法:在COMMAND窗口输入如下命令:C
23、REATE FORM&创建新的表单或 MODIFY FORM&打开一个已有的表单,2023/10/31,经济与管理学院,55,在项目管理器中,先选择文档标签,然后选择表单,单击新建按钮。若是修改表单,选择要修改的表单,单击“修改”按钮。,2023/10/31,经济与管理学院,56,2.表单设计环境(1)设计器窗口“表单设计器”窗口内包含正在设计的表单。用户可在表单窗口中可视化地添加和修改控件、改变控件布局,表单窗口只能在“表单设计器”窗口内移动。以新建方式启动表单设计器时,系统将默认为用户创建一个空白表单,如图所示部分。,2023/10/31,经济与管理学院,57,(2)属性窗口设计表单的绝大
24、多数工作都是在属性窗口中完成的,因此用户必须熟悉属性窗口的用法。如果在表单设计器中没有出现属性窗口,可在系统菜单中单击【显示】|【属性】,属性窗口如图所示。,页框选项卡,“对象”下拉列表框图,属性设置框,2023/10/31,经济与管理学院,58,(3)表单控件工具栏 设计表单的主要任务就是利用“表单控件”设计交互式用户界面。“表单控件”工具栏是表单设计的主要工具。默认包含21个控件、4个辅助按钮,如图所示,2023/10/31,经济与管理学院,59,(4)表单设计器工具栏 打开“表单设计器”时,主窗口中会自动出现“表单设计器”工具栏,如图所示。,2023/10/31,经济与管理学院,60,9
25、.4.2 数据环境1.打开数据环境设计器 表单设计器环境下,单击“表单设计器”工具栏上的“数据环境”按钮,或选择【显示】|【数据环境】命令,即可打开“数据环境设计器”窗口,此时,系统菜单栏上将出现“数据环境”菜单。,2023/10/31,经济与管理学院,61,2.数据环境的常用属性 常用的两个数据环境属性是AutoOpenTables和AutoCloseTables,2023/10/31,经济与管理学院,62,3.向数据环境添加表或视图 在数据环境设计器环境下,按下列方法向数据环境添加表或视图:在系统菜单中选择【数据环境】|【添加】命令,或右键单击“数据环境设计器窗口”,然后在弹出的快捷菜单中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 表单 设计
链接地址:https://www.31ppt.com/p-6435971.html