首页 《Visual FoxPro数据库程序设计教程》-王凤领-电子教案与案例 第5章 面向对象的程序设计

《Visual FoxPro数据库程序设计教程》-王凤领-电子教案与案例 第5章 面向对象的程序设计

举报
开通vip

《Visual FoxPro数据库程序设计教程》-王凤领-电子教案与案例 第5章 面向对象的程序设计VisualFoxPro数据库程序设计教程 中国水利水电出版社第5章面向对象的程序设计 5.1对象程序设计概念 5.2VisualFoxPro中的类 5.3使用对象 5.4简单的输入输出程序设计 5.5VisualFoxPro中的事件与方法程序 5.6用户自定义类 本章小结 习题5VisualFoxPro数据库程序设计教程 中国水利水电出版社本章要点 面向对象程序设计的基本概念、VisualFoxPro中的对象与类、对象的访问与引用、简单的输入输出程序设计、创建自定义类。VisualFoxPro数据库程序设计教程 ...

《Visual FoxPro数据库程序设计教程》-王凤领-电子教案与案例 第5章  面向对象的程序设计
VisualFoxPro数据库程序设计教程 中国水利水电出版社第5章面向对象的程序设计 5.1对象程序设计概念 5.2VisualFoxPro中的类 5.3使用对象 5.4简单的输入输出程序设计 5.5VisualFoxPro中的事件与方法程序 5.6用户自定义类 本章小结 习题5VisualFoxPro数据库程序设计教程 中国水利水电出版社本章要点 面向对象程序设计的基本概念、VisualFoxPro中的对象与类、对象的访问与引用、简单的输入输出程序设计、创建自定义类。VisualFoxPro数据库程序设计教程 中国水利水电出版社 早期的程序设计语言多采用结构化程序设计(StructuredProgramming,SP)的方法,例如早期的BASIC、C语言、Pascal语言等。结构化程序设计的基本思想是将一个规模较大的、复杂的应用系统划分为若干个功能相关又相对独立的较小的模块,再将这些模块划分为更小的功能子模块进行编制,然后将这些模块组装起来,完成系统的设计。相对于以前的程序编写方法,结构化程序设计在一段时期内能够解决一些实际问题,所编写的程序层次结构清晰,更便于阅读和理解。但是随着计算机技术的发展,我们面临的问题越来越复杂,系统的规模也越来越大,这时再采用结构化程序设计方法就显得有些力不从心了。一是软件开发周期长,二是程序代码可重用性差,系统的维护更要花费大量的人力和时间。为此,需要一种更为先进、更能贴近人们解决问题的思维习惯方式的程序设计方法,近年来产生了面向对象的程序设计(ObjectOrientedProgramming,OOP)方法。VisualFoxPro数据库程序设计教程 中国水利水电出版社 VisualFoxPro不但支持过程化编程,而且支持面向对象编程。充分理解面向对象的基本概念,掌握面向对象的程序设计方法,才能真正用好VisualFoxPro。 本章的主要目标在于为初学者树立面向对象程序设计的概念。VisualFoxPro数据库程序设计教程 中国水利水电出版社5.1对象程序设计概念 面向对象程序设计从所处理的数据入手,以数据为中心而不是以功能为中心来描述系统。在面向对象程序设计中,采用对象、类、方法、事件、继承等基本目概念,从分析问题领域中实体的属性和行为及其相互关系入手。程序设计人员不再是单纯地从代码的第一行一直编写到最后一行,而是考虑如何创建对象、利用自对象来简化程序设计。VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.1.1对象 1.对象 “对象”(Object)是面向对象程序设计方法学中最基本的概念。在应用领域中有意义的、与所要解决问题有关系的任何事物都可以称作对象。它既可以是具体的物质实体的抽象,也可以是人为的概念。例如一名学生、一所学校、一个 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 单、一个按钮等都可以作为一个对象。 2.类 类(Class)和对象关系密切,但并不相同。类是对同一类对象的抽象,类包含了有关对象的特征和行为信息,它是对象的蓝图和框架,而类的实例就是一个对象。VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.1.2对象的属性、事件与方法 1.属性 所谓属性(Property)就是对象表现出来的特征、状态或行为,就像录音机有型号、尺寸、颜色、出厂日期等特征一样。不同的对象可以拥有各种相同或不同的属性,其中有些属性是只读并且无法改变的,而有些则可以通过设定来改变。这就好像录音机的出厂日期、型号等属性是无法改变的,但操作面板上所显示的时间则可通过设定来改变。 2.方法 方法(Method)是用来处理或操纵对象的途径。对象通常会提供一些方法,以便应用程序可以使用对象所提供的服务。例如,录音机提供了“播放”、“停止”、“暂停”、“快进”、“快退”等操作按钮,而这些按钮其实就相当于录音机提供的方法。用户只要按下这些按钮,就可以得到录音机所提供的播放、停止播放、快进、快退等服务。VisualFoxPro数据库程序设计教程 中国水利水电出版社 3.事件与事件响应 事件(Event)就是对象所碰到的情况。例如,有录音带被放进录音机,或者是录音带播完,这样的情况就是一个“事件”。当一个事件发生后,就需要对该事件进行响应。也就说,可以事先指定当事件发生时,对象要做出什么样的反应。例如,当“录音带放进录音机”的事件发生时,可以指定是直接“播放”,还是先“快进”一小段后再开始“播放”。 事件可以由一个用户动作产生,如单击鼠标或按键,也可以由程序代码或者系统产生,如计时器每隔一段时间产生的到时事件就是由系统产生。大多数情况下,事件是通过用户的交互操作产生的。 在VisualFoxPro中,可以激发事件的用户动作包括:单击鼠标(Click)、双击鼠标(DblClick)、按键(keyPress)、移动鼠标(MouseMove)等。VisualFoxPro数据库程序设计教程 中国水利水电出版社 4.事件过程 在每一个对象上面,都已经设定了该对象可能发生的事件,而每一个事件都会有一个对应的空事件过程(也就是还没有规定如何处理该事件的空程序)。在写程序时,并不需要把对象所有的事件过程填满,只要填入需要的部分就可以了。当对象发生了某一事件,而该事件所对应的事件过程中没有程序代码(也就是没有规定处理步骤)时,则表明程序对该事件“不予理会”,事件将交由系统预先设定的默认处理方式处理,这样不会对程序造成影响。VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.1.3面向对象编程 面向对象使程序员的观点从程序设计语言如何工作,转向注重于执行程序设计功能的对象模型,着重于建立能够模拟需要解决的现实世界问题的对象。 在面向对象的程序设计中,对象是组成软件的基本元件。每个对象可看成是一个封装起来的独立元件,在程序里担负某个特定的任务。因此,在设计程序时,不必知道对象的内部细节,只是在需要时,对对象的属性进行设定和控制,书写相应的事件代码即可。图5-1示范了对象和应用程序的关系。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-1面向对象编程模型VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.1.4对象编程实例 【例5-1】一个简单表单程序的编写示例。表单上有两个按钮,一个按钮是“显示英文”,另一个按钮是“退出”。运行时,首先显示一行文字:“欢迎光临!”。当单击“显示英文”按钮时,文字变成英文的“He11o,World!”;当单击“退出”按钮时,关闭表单,程序结束。VisualFoxPro数据库程序设计教程 中国水利水电出版社 (1)创建容器对象一一表单。操作步骤:“文件”菜单中的“新建”,弹出“新建”对话框,选取“表单”,单击右上方的“新建文件”按钮,进入表单设计器。新表单具有默认名称Form1,默认标题Fom1。 (2)定义数据环境一一本例没有涉及数据库与表操作。 (3)摆放控件对象。 (4)设置对象属性。如果没有出现“属性”窗口,可以从“显示”菜单中点选“属性”,或者鼠标左键单击系统工具栏上的“属性窗口”按钮,使“属性”窗口出现在屏幕上,如图5-3所示。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-3属性窗口VisualFoxPro数据库程序设计教程 中国水利水电出版社 (5)编写事件代码。针对事件进行编程,从而实现对用户鼠标事件的响应。 ①Command1的Click事件。鼠标双击Command1,在出现的代码窗口中,左上方“对象”框中应是“Commmd1”,右上方“过程”框中应是“Click”,表示现在编写命令按钮Command1的Click事件代码。如果不是,应使用鼠标左键进行选择。 在代码窗口中输入以下内容: ThisForm..Label1.Caption="Hello,World!" ②Command2的Click事件代码。用鼠标单击代码窗口左上方“对象”框右边的向下箭头,在弹出的列表中选择“Comnand2”,或者在表单上直接用鼠标双击Command2,在Click事件代码窗口中输入: Thisform.ReleaseVisualFoxPro数据库程序设计教程 中国水利水电出版社图5-4运行时表单界面图5-5单击“显示英文”按钮后的表单界面VisualFoxPro数据库程序设计教程 中国水利水电出版社5.2VisualFoxPro中的类 类就像是一个模板,对象都是由它生成的。类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。本节重点介绍VisualFoxPro中的类。 5.2.1VisualFoxPro的基类 基类是VisualFoxPro预先定义好的类,VisualFoxPro为用户提供了29个基类,用户既可以从中创建对象,也可以由基类派生出子类。VisualFoxPro的类有两大主要类型,它们便是容器类和控件类。因此VisualFoxPro对象也分为两大类型,即容器类对象和控件类对象。VisualFoxPro数据库程序设计教程 中国水利水电出版社 1.容器类与容器类对象 容器类可以容纳别的对象,并允许访问所包含的对象。比如,表单是一个容器类,当创建一个具体的表单(如Forml)时,就是由表单这个容器类生成的一个容器类对象Form1,同时,又可以把按钮、编辑框、文本框等放在表单中,无论在设计时刻还是在运行时刻,都可以对其中任何一个对象进行操作,如访问、修!改它们的属性值。 表5-1列出了VisualFoxPro的容器类及其能包含的对象。VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-1容器类及其能包含的对象 容器 名称 能包含的对象 Container 容器 任意控件 CommandGroup 命令按钮组 命令按钮 Control 控件 任意控件 Custom 自定义 任意控件、页框、容器、自定义对象 FormSet 表单集 表单、工具栏 Form 表单 页框、任意控件、容器或自定义对象 Grid 表格 关于规范使用各类表格的通知入职表格免费下载关于主播时间做一个表格详细英语字母大小写表格下载简历表格模板下载 列 标头对象以及除了表单集、表单、工具栏、计时器和其它列对象以外的任意对象 Column 表格 表格列 OptionGroup 选项按钮组 选项按钮 PageFrame 页框 页面 Page 页面 任意控件、容器和自定义对象 ToolBar 工具栏 任意控件、页框和容器VisualFoxPro数据库程序设计教程 中国水利水电出版社 2.控件类与控件类对象 控件类不能容纳其他对象,如命令按钮(CommandButton)就是一个控件类,在命令按钮中就不能包含其他对象。 当把一个具体的命令按钮Command1放置到某个表单上时,该命令按钮Command1就是一个由控件类CommandButton生成的控件类对象。控件类对象不能单独使用和修改,而只能作为容器类中的一员,通过容器类创造的对象修改或访问。 控件类的最大好处是它的封装性比容器类更为严密,因此使用起来比较方便,特别是对初学者。不过正是由于封装的严密,它没有容器类灵活。 表5-2列出了VisualFoxPro中的控件类。VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-2控件类 控件类名称 名称 控件类名称 名称 CheckBox 复选框 OLEBoundControl OLE绑定控件 ComboBox 组合框 OLEContainerControl OLE容器控件 CommandButton 命令按钮 OptionButton 选项按钮 EditBox 编辑框 Separator 空白空间 Header 标题行 Shape 形状 Image 图像 Spinner 微调控制器 Label 标签 TextBox 文本框 Line 线条 Timer 定时器 ListBox 列表框VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.2.2类的特性 1.封装一一隐藏不必要的复杂性 封装就是指将对象的方法程序和属性代码包装在一起。 2.继承一一充分利用现有类的功能 (1)子类与父类:类是对客观事物的抽象,而抽象的层次是可以不同的。子类又叫派生类,是指以其他已有类定义为起点所建立的新类,该已有类称为新类的父类。 3.多态 多态指由继承而产生的相关的不同的类,其对象对同一消息做出不同的响应。VisualFoxPro数据库程序设计教程 中国水利水电出版社5.3使用对象 5.3.1对象的包容层次 一个容器类对象包含另一个对象时,该对象是容器类对象的子对象,而容器类对象是该对象的父对象。图5-6是一种可能的对象包容关系示意图。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-6一种可能的对象包容层次示意图VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.3.2对象的引用 1.绝对引用 通过提供对象的完整容器层次来引用对象称为绝对引用。例如图5-2中,用绝对引用方式引用标签Label1,格式如下: MyForm1.label1 需要注意的是,当表单是最高层对象时,绝对引用中表单名必须是相应表单文件的文件名。【例5-1】中,表单的名字(Name属性)是“Fom1”,表单的标题(Caption)是“Fom1”,而表单文件名是“MyFom1.scx”。如果使用如下格式: Form1.Labell 是错误的,系统将会报错:“找不到别名Fom1”。 2.相对引用VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-3相对引用关键字及其意义 关键字 引用关系 This 该对象本身 ThisForm 该对象所在的表单 ThisFormSet 该对象所在的表单集 Parent 包含该对象的直接容器VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-4相对引用示例 对象引用 使用的地方 This 在某对象的事件或方法程序代码中访问本控件 ThisForm.Command1 在Command1所在的同一表单的任意子对象的事件或方法程序代码中访问Command1 ThisFormSet.Form1.Command1 在此表单集的任意表单的任意子对象的事件或方法程序代码中访问Command1 This.Parent 在某对象的事件或方法程序代码中访问父对象VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.3.3设置属性 1.设置单个属性 在事件或方法程序中用命令设置属性,语法如下: 【格式1】<对象引用>.<对象属性>=<值> 【格式2】<对象引用>-><对象属性>=<值> 【功能】设置对象的属性值。VisualFoxPro数据库程序设计教程 中国水利水电出版社 常见的属性值类型有数值型、字符型、逻辑型、颜色RGB值等。例如,对于图5-2中的标签Label1,下列语句用绝对引用方式设置它的各种属性,注意引用格式和属性值类型: MYForm1.Label1.fontName="宋体“&&字符型,设置字体 MYForm1.Label1.width=50 &&数值型,设置标签宽度 MYForm1.Label1.visible=1 &&逻辑型,使控件可见 MYForm1.Label1.ForeColor=RGB(0,0,0) &&颜色格式,标签为黑色文本 如果在命令按钮Commandl的Click事件过程中设置标签Labe11,也可使用相对引用格式: ThisForm.Label1.Enabled=.T. &&控件有效 MYForm1.Label1.ForeColor=RGB(0,0,0) &&黑色文本MYForm1.Label1.Visible=.T. &&控件可见VisualFoxPro数据库程序设计教程 中国水利水电出版社 2.设置多个属性 当对一个对象一次设置多个属性时,With…EndWith结构可以简化设置过程。语法如下: 【格式】With<对象引用> .<属性1>=<值1> …… .<属性n>=<值n> EndWith 【功能】一次设置指定对象的多个属性值。VisualFoxPro数据库程序设计教程 中国水利水电出版社 例如,上面例子中设置标签Label1的多个属性,可以使用以下语句实现: withMyForml.Labell .Enabled=.T. &&控件有效 .Forecolor=RGB(0,0,0) &&黑色文本 .visible=.T. &&控件可见 EndWithVisualFoxPro数据库程序设计教程 中国水利水电出版社5.4简单的输入输出程序设计 5.4.1命令按钮的使用 命令按钮(CommandButton)控件是使用最多的控件之一,常被用来执行某些代码,如开始计算、移动指针、关闭表单等,特定操作代码通常放置在命令按钮的Click事件中。命令按钮的常用属性,如表5-5示。VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-5命令按钮的常用属性 属性 说明 Cancel 指定当用户按下Esc键时,执行与命令按钮的Click事件相关的代码 Caption 在按钮上显示的文本 DisabledPicture 当按钮失效时,显示的.BMP文件 DownPicture 当按钮按下时,显示的.BMP文件 Enabled 能否选择此按钮 Picture 显示在按钮上的.BMP文件VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.4.2用标签输出信息 【例5-2】在表单中显示一个红色楷体18磅的文本“VisualFoxpro程序设计”。 5.4.3文本框输入输出VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-6文本框的常用属性 属性 说明 Alignment 指定文本框中的内容是左对齐、右对齐、居中还是自动对齐。自动对齐取决于数据类型,如数值型数据右对齐,字符型数据左对齐 Century 指定年份的前两个数字是否显示 ControlSource 在文本框中显示表的字段或变量的值 DateFormat 将文本框中的日期编排为十五个预定的格式。如American,German InputMask 指定每个字符输入时必须遵守的规则 PasswordChar 指定文本框中是显示用户输入的内容,还是显示占位符,并指定用作占位的字符 ReadOnly 指定用户能否对该文本框的内容进行编辑 SelectOnEntry 当文本框得到焦点时是否自动选中文本框的内容 TabStop 确定用户是否能用Tab键选择该控件。如果TabStop设置为.F.,用户仍能用鼠标单击的方法选择该文本框VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-7文本框的InputMask属性及其值的设置 设置 说明 9 可以输入数字和符号,如可以输入一个负号 # 可以输入数字、空格和字符 * 在值的左边显示符号“*” . 指定十进制小数点的位置 , 表示十进制整数部分用逗号分隔VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-8Format属性常用格式符 功能符 功能 A 仅允许英文字母,不允许空格或标点符号 D 使用当前SETDATE所设定的日期格式 E 使用欧洲日期格式编辑日期数据 K 选定整个文体框进行编辑。 L 在文本框中显示前导0,而不是空格。只对数值型数据使用 R 显示文本框的格式掩码,掩码字符并不存在控件集中。只能用于文本框中字符型或数值型数据。 T 删除数据的前置和尾部空格。 M 允许多个预置选择项。选择项列表存储在InputMask属性中,列表中的各项用逗号分隔。列表中独立的各项不能再包含嵌入的逗号。如果文本框的Value属性并不包含此列表中的任何一项,则它被设置为列表中的第一项。只能用于文本框中字符型数据。 ^ 用科学计数法显示数据。 ! 字符型数据中的字母转化为大写。只用于文本框 $ 显示货币符号,只用于数值或货币型数据。VisualFoxPro数据库程序设计教程 中国水利水电出版社 【例5-3】利用文本框输入球的半径,然后按“计算”按钮,得到球的体积。 具体操作如下: (1)打开表单设计器,添加两个文本框控件Text1和Text2,两个标签控件Label1和Label2,两个命令按钮Command1和Command2,如图5-9所示。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-9表单界面设计VisualFoxPro数据库程序设计教程 中国水利水电出版社 (2)设置对象属性。 修改表单Form1的属性:标题(Caption)改为文本框的使用。 修改标签Label1的属性:标题(Caption)改为请输入球的半径:;字体(FontName)改为黑体;粗体字(FontBold)改为.T.——真;字体大小(FontSize)改为18;自动大小(AutoSize)改为.T.——真。 修改标签Label2的属性:标题(Caption)改为球的体积为:;其它属性与标签Label1相同。 修改文本框Text1的属性:InputMask改为9999.99;Value改为0;修改文本框Text2的属性:InputMask改为9999.99;ReadOnly改为.T.;TabStop改为.F.;Value改为0。 修改命令按钮Command1的属性:标题(Caption)改为计算;粗体(FontBold)改为.T.——真。 修改命令按钮Command2的属性:标题(Caption)改为关闭;粗体(FontBold)改为.T.——真。VisualFoxPro数据库程序设计教程 中国水利水电出版社 (3)编写事件代码。 表单的事件代码如下。 Activate事件: Thisform.text1.SetFocus Command1的事件代码如下。 Click事件: R=Thisform.text1.value Thisform.text2.value=4*3.14*R*R*R/3 Thisform.text1.SetFocus (4)保存并运行该表单,结果如图5-10所示。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-10计算球体积的表单运行结果VisualFoxPro数据库程序设计教程 中国水利水电出版社5.5VisualFoxPro中的事件与方法程序 1.事件 在VisualFoxPro中,对象可以响应50多种事件,当事件发生时,将执行包含在事件过程中的全部代码。 事件有的适用于专门控件,有的适用于多种控件。事件的发生大多由用户操作引发,部分由系统或其他对象引发。表5-10列出了VisualFoxPro中的核心事件。 2.方法程序的调用 每一类对象都有特定的方法程序,表单的常用方法程序如表5-9所示。VisualFoxPro数据库程序设计教程 中国水利水电出版社表5-9表单的常用方法 方法名 功能 方法名 功能 AddObject 向表单中添加对象 Line 在表单上画线 Hide 隐藏表单 Box 在表单上画矩形 Show 显示表单 Circle 在表单上画圆圈和圆弧 Refresh 刷新表单上控件的值 Cls 清除表单上的文本和图形 Release 释放表单或表单集 SetFocus 设置控件对象的焦点VisualFoxPro数据库程序设计教程 中国水利水电出版社 【格式】<对象引用>.<方法程序> 【功能】调用对象的方法程序。 下列语句调用方法程序来显示表单,并将焦点设置在命令按钮Commandl上: MyForm1.show MYForm1.command1.setFocusVisualFoxPro数据库程序设计教程 中国水利水电出版社表5-10VisualFoxPro核心事件 事件 触发事件操作 Click 按下并释放鼠标左键 DblClick 双击鼠标左键,选择列表框或组合框中选项并回车 Destroy 释放对象时 GetFocus 接收到焦点(Focus) Init 创建对象 InteractiveChange 使用键盘或鼠标改变控件的值时 KeyPress 当用户按下并释放一个键时 Load 在创建一个对象之前发生 LostFocus 当对象失去焦点(Focus)时 MouseDown 当用户按下鼠标键时 MouseMove 当鼠标移动到对象上时 MouseUp 当释放鼠标按键时 ProgrammaticChange 以编程方式更改控件的值时发生 RightClick 在控件中按下并释放鼠标右键时 Unload 释放对象时VisualFoxPro数据库程序设计教程 中国水利水电出版社5.6用户自定义类 5.6.1使用类设计器创建类 1.“新建类”对话框新建类 有三种方法可以进入“新建类”对话框: ·项目管理器中新建类。 ·从文件菜单中新建类。 ·直接在命令窗口键入CreateClass命令。 在如图5-11所示的“新建类”对话框中,为新建类指定所需的类库、基类和类名等。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-11新建类对话框VisualFoxPro数据库程序设计教程 中国水利水电出版社 2.类设计器 类设计器的用户界面与表单设计器相似,在类设计器中,新类的属性、事件和方法主要通过属性窗口进行设计、定义和修改,如图5-12所示。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-12类设计器界面VisualFoxPro数据库程序设计教程 中国水利水电出版社 【例5-4】创建一个自定义命令按钮组类MyCmdGroup,命令按钮按多行多列排列,用户可以指定按钮的行数和列数。 (1)创建新类:选择“文件”菜单中的“新建”按钮,在“新建”对话框中选中“类”,单击“新建文件”按钮。在如图5-11所示的“新建类”对话框中,类名:MyCmdGroup;派生于:CommandGroup;存储于:f:\vfpr\MyClass.vcx。按“确定”按钮进入类设计器。VisualFoxPro数据库程序设计教程 中国水利水电出版社 (2)添加类的新属性:为新类添加两个新属性:①RowCount:命令按钮的行数:ColumnCount:命令按钮的列数。步骤:选择“类”菜单中的“新建属性”,打开如图5-13所示的“新建属性”对话框,在“新建属性”对话框的“名称”一栏输入“RowCount”,在“说明”一栏输入“命令按钮组中按钮的行数”,单击“添加”按钮。②用同样方法添加属性“ColumnCount”,然后按“关闭”按钮关闭“新建属性”对话框。 (3)为新属性指定初始值:在类的属性窗口(“其他”卡片中)找到这两个新增属性,将它们的值设为2。 (4)输入类信息:选主“类”菜单中的“类信息”,打开如图5-14所示的“类信息对话框”,指定工具栏图标容器类图标,如需要,可以输入类的说明信息。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-13新建属性图5-14类信息对话框VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-15类的Init代码VisualFoxPro数据库程序设计教程 中国水利水电出版社 (5)编制类的Init代码:当用户使用这个类时,根据RowCount和ColumCount属性值,自动计算各个按钮的位置,如图5-15所示。 (6)保存并关闭类设计器:当关闭类设计器时,系统提示“要将所作更改保存到类设计器——MyClass.vcx(MyCmdGroup)中吗?”,选择“是”按钮。VisualFoxPro数据库程序设计教程 中国水利水电出版社 3.使用用户自定义类 【例5-5】创建一个新表单,使用【例5-2】中创建的命令按钮类为表单添加一个命令按钮组。 (1)新建表单:选择“文件”菜单中的“新建”/“表单”/“新建文件”,进入表单设计器; (2)将用户自定义类加入表单控件工具栏:点击表单控件工具栏的“查看类”按钮,在弹出菜单中选定“添加”,在打开对话框中查找【例5-2】所保存的可视类MyClass.vcx文件,单击“确定”按钮,此时控件工具栏上将显示自定义类的图标。VisualFoxPro数据库程序设计教程 中国水利水电出版社 (3)添加自定义按钮组:点击自定义类图标,在表单上用鼠标单击,一个自定义按钮组将出现在表单上。 (4)修改自定义按钮组属性:在属性窗口中单击“其他”卡片,在最下方找到RowCount和ColumnCount属性,分别修改属性值为4和3。 (5)执行表单:屏幕上将出现一个4×3的按钮组,如图5-16所示。VisualFoxPro数据库程序设计教程 中国水利水电出版社图5-16使用自定义类VisualFoxPro数据库程序设计教程 中国水利水电出版社 4.将一个表单存为类 可以将一个表单直接存为可视类,步骤为: (1)在表单设计器中设计或打开一个表单。 (2)通过“文件”菜单的“另存为类”,输入类名、保存文件名和类描述,按“确定”按钮。VisualFoxPro数据库程序设计教程 中国水利水电出版社 5.6.2编程方式使用类 也可以在代码运行中用编程的方式定义类,其基本语法为: DEFINECLASSClassnamelASParentClass [[Object.]PropertyName=eExpression…] [ADDOBJECT[PROETCTED]ObjectNameAsClassName2 [WITHcPropertyList]]… [PROCEDURENamecStatementsENDPROCEDURE] ENDDETINEVisualFoxPro数据库程序设计教程 中国水利水电出版社 其中: Classname1是新建类的名字。 ParentClass是新建类的父类的名字,既可以是VisualFoxPro的基类,也可是自定义类。 propertyName=eExpression…对属性进行赋值。 ADDOBJECT向类添加对象。 [PROTECTION]禁止在类或子类之外访问和改变对象的属性。 ObjectName指定对象名。 ASClassName2指定对象的父类名。 [WITHcPropertyList]]…为添加的对象指定属性及给属性赋值。 [PROCEDUREName为类或子类指定事件或方法的程序代码。 Cstatements执行事件或方法的程序代码,可以是多行。VisualFoxPro数据库程序设计教程 中国水利水电出版社 【例5-6】用编程方式创建表单类,并创建对象。 建立一个命令文件Classtest.prg,输入以下代码: form1=createobject("myform") &&创建一个myform类的对象 form1.show &&调用form1的show方法 readevent &&开始事件循环 defineclassmyformasform &&定义基于form类的新类Myform caption="我的表单" Height=40 Width=60 AddObjectCommand1ASCommandButtonwith; &&类中增加按钮对象VisualFoxPro数据库程序设计教程 中国水利水电出版社 caption="退出",; Top=0,; Width=70,; Height=30 ProcedureCommand1.Click() &&按钮对象的Click方法 ifMessageBox("真的关闭吗?",4+16+0,"对话窗口")=6 &&如果按“确定” ReleaseThisForm &&释放表单 clearEvent &&结束事件循环 EndIf EndProc EndDefineVisualFoxPro数据库程序设计教程 中国水利水电出版社本章小结 面向对象的程序设计是程序设计的主流方向,是对结构化程序设计的一种改进。程序设计人员在进行面向对象的程序设计时,不再是单纯地从代码的第一行一直编到最后一行,而是首先要考虑的是如何创建对象,利用对象来简化程序设计,提供代码的可重用性,将程序代码视为对象来管理。 本章内容要点: (1)简单介绍了面向对象程序设计中的对象,对象的属性、方法和事件。 (2)表单对象及对象的引用,以及控件与对象的基本知识。 (3)讲解了简单的输入输出程序设计。 (4)VisualFoxPro中的事件与方法程序。 (5)用户自定义类
本文档为【《Visual FoxPro数据库程序设计教程》-王凤领-电子教案与案例 第5章 面向对象的程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
在线教务服务
暂无简介~
格式:ppt
大小:597KB
软件:PowerPoint
页数:0
分类:工学
上传时间:2019-11-02
浏览量:5