1、面向对象程序设计面向对象程序设计OOP(Object-oriented Programming)不同于面向过程程序设计,OOP可以利用对象“组装”程序,每个对象中的代码对许多编程人员来说是透明的。代码更精练和较好的复用性(如窗口、按钮等对象)。程序的构造更为简单,编程效率较高。基本术语基本术语 1 1对象对象 (1)对象 对象(Object)是反映客观事物属性及行为特征的描述。每个对象都具有描述它的特征的属性,及附属于它的行为。在程序设计中,对象是私有数据和对这些数据进行处理的操作(方法程序)相结合的程序单元(实体)。在Visual FoxPro应用程序中,窗口、命令按钮等可以被看成是对象。基
2、本术语基本术语 (2)对象的属性(Property)属性定义了对象所具有的数据,它是对象所有特征数据的集合。对象的每一种属性,都是与其它对象加以区别的特性,都具有一定的含义,并赋予一定的值。属性值可以在设计阶段设置,也可以在运行阶段更改。如,具有以下属性和行为特征:.命令按钮在窗口的位置;.命令按钮的标题及命令按钮的大小;.按动命令按钮进行什么操作。基本术语基本术语 (3)方法程序(Method)方法程序是指对象为实现一定功能而编写的代码。方法是附属于对象的行为和动作。(4)事件(Event)事件是每个对象可能用以识别和响应的某些行为和动作。事件可以由系统引发,比如生成对象时,系统就引发一个I
3、nit事件,对象识别该事件,并执行相应的Init事件代码;事件也可以由用户引发,如,单击鼠标就发生了一个“click”事件,命令按钮识别该事件并执行相应的click 事件代码。在Visual FoxPro系统中,对象可以响应50多种事件。多数情况下,事件是通过用户的操作行为引发的,当事件发生时,将执行包含在事件过程中的全部代码。(5)类(class)类是具有共同属性、共同操作性质的对象的集合。VFP中的类和对象中的类和对象 1、类与对象 在Visual FoxPro系统中,类就像是一个模板,对象都是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。对象是类的实例。
4、2、基类(base class)基类是VFP预先定义的类。基类又可以分成容器类和控件类。容器类(Containers)可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。P60表2-7列出了基类中主要的容器类。VFP中的类和对象中的类和对象 控件类不能容纳其它对象,它没有容器类灵活。如文本控件自身是一个对象,在文本控件中不可放其它对象。由控件类创造的对象,是不能单独使用和修改的,它只能做为容器类中的一个元素,通过由容器类创造的对象修改或使用。P60表2-8列出了常用的控件类。3、子类(subclass)以某个类的定义为起点创建的新类称为
5、子类,前者成为父类。子类将继承父类的全部特征,包括对父类所做的任何修改。类的特征类的特征类具有封装性和继承性等特性。封装性(Encapsulation)是指类的内部信息对用户是隐蔽的。由于类具有封装性,因此不必被类的概念或类的抽象所困扰。在使用类时,用户不需熟悉对象内部的复杂性,只需掌握类的使用方法,使应用程序的可用性大大提高了。类的特征类的特征继承性(Inheritance)指通过继承关系利用已有的类构造新类。有了类的继承,用户在编写程序时,可以把具有普遍意义的类通过继承引用到程序中,从而减少代码的编写工作。方法属性继承的方法、属性添加的方法、属性对象的操作对象的操作对象属性的设置通过属性窗
6、口在程序中设置属性的一般格式:表单名.对象名.属性名=属性值 常见的属性有标题(Caption),名称(Name),背景色(Backcolor),字体大小(Fontsize),是否可见(Visible)等。对象的关键字THISFORMSET 表示当前表单集THISFORM 表示当前表单THIS 表示当前对象对象引用格式引用关键字.被引用对象|对象的属性|事件|方法程序对象的操作对象的操作对象的事件单击(click),双击(Dblclick),装入(load),移动鼠标(Mousemove),右击(Rightclick),用鼠标或键盘交互改变控件值(InteractiveChange)事件过程事
7、件被触发后,响应该事件后所执行的程序代码为事件过程对象的方法用于完成某种特定的功能,被封装在不同的对象中。常用的表单方法:Release:将表单从内存中释放Refresh:刷新表单Show:显示表单Hide:隐藏表单Setfocus:让对象获得焦点,使其成为活动对象。对象的操作对象的操作对象的引用实例THISFORMSET.Form1.Cmd1.Caption=“关闭”将本表单集的名为From1的表单中的Comd1对象的标题(Caption)属性设为“关闭”THISFORM.Cmd1.Caption=“关闭”将本表单的名为Comd1对象的标题(Caption)属性设为“关闭”THIS.Capt
8、ion=“关闭”将当前对象的标题(Caption)属性设为“关闭”THIS.Parent.BackColor=RGB(192,0,0)将本对象的父对象的背景色设置为红色。THISFORM.Refresh刷新当前表单第五章第五章 表单设计表单设计 表单(Form)是应用程序的重要组成部分,是真正面向对象的编程工具。表单设计充分体现了VFP 面向对象程序设计的风格和可视化设计的精髓所在。表单在系统中是用户的主要界面,也有人把它称为屏幕(Screen)或窗口。但它不是一个普通的窗口,因为其中的控件可以有属性、事件和方法,并且表单和表单集本身也是有属性、事件和方法的编程对象。在Visual FoxPr
9、o 系统中,表单拥有多个属性,可以响应多种事件、实现多种方法操作。在面向对象的程序设计中,两个最基本的可视对象类型是容器和控件。表单就是一个容器,它可以容纳多个控件。表单及其控件对象图示表单编辑框标签文本框列表框图像检查框单选钮命令按钮组5.1表单操作基础表单操作基础生成表单的方法生成表单的方法:1.使用表单向导2.使用表单设计器创建新表单或修改已有表单3.使用“快速”表单功能,生成一个简单的表单4.用create form.SCX命令 保存表单方法(表单文件扩展名为保存表单方法(表单文件扩展名为.SCX):1.文件/保存 2.CTRL+W3.关闭表单设计器窗口时保存运行表单的方法:运行表单的
10、方法:1.单击表单设计器工具栏或项目管理器的“运行”按钮2.使用命令:DO FORM 3.在未关闭的表单窗口空白处右击,选择快捷菜单中的“运行”命令一、单表单向导的基本步骤如下:例 为学生表创建一个表单“学生1.SCX”。1.选择“文件”下拉菜单的“新建”命令,弹出“新建”对话框。2.在“新建”对话框中,选择“表单”为有效,并单击“向导”按钮,弹出向导选取对话框。5.2表单向导表单向导3.在向导选取对话框中,选取“表单向导”,单击“确定”按钮,弹出表单向导的第一步对话框:4.在步骤 1 表单向导对话框中,首先指定用于创建表单控制的表或数据库,然后选择在表单中用到的字段,单击“下一步”按钮,弹出
11、表单向导的第二步对话框。5.在步骤2表单向导对话框中,选择表单样式和按钮类型,单击“下一步”按钮,弹出表单向导的第三步对话框。6在步骤3表单向导对话框中,选择用于排序的字段(最多为三个字段),然后指定排序的方式(升序或降序),单击“下一步”按钮,弹出表单向导的第四步对话框。7在步骤4表单向导对话框中,输入表单的标题,然后选择保存表单的方式,建议选择“保存表单并用表单设计器修改表单”,在保存前可以用“预览”按钮查看表单运行的效果,最后单击完成弹出一保存对话框,用于选择表单的存放路径和输入表单的文件名。退出表单:点击退出表单按纽重新打开表单:文件/打开/表单 MODIFY FORM .SCX运行表
12、单:表单/执行表单 DO FORM .SCX二、为多个表创建表单向导(一对多表单向导)二、为多个表创建表单向导(一对多表单向导)一对多表单向导是对有公共字段的多个表(至少是两个)进行操作,从多个表中选取部分字段进行显示。例建立同时操作学生表和学生选课表这2张表的表单其基本步骤如下:1.选择“文件”下拉菜单的“新建”命令,弹出新建对话框。2.在“新建”对话框中,选择“表单”为有效,并单击“表单向导”按钮,弹出向导选取对话框。3.在向导选取对话框中,选取“一对多表单”,并单击确定按钮,弹出表单向导的第一步对话框。4.在步骤 1 一对多表单向导对话框中,首先指定一对多表单的父表,然后选择在表单中用到
13、的字段,单击“下一步”按钮,弹出表单向导的第二步对话框。5.在步骤2一对多表单向导对话框中,首先指定一对多表单的子表,然后选择在表单中用到的字段,单击“下一步”按钮,弹出表单向导的第三步对话框。6.在步骤3一对多表单向导对话框中,为父表和子表指定关系(指定公共字段),单击“下一步”按钮,弹出表单向导的第四步对话框。7.在步骤4表单向导对话框中,选择表单样式和按钮类型,单击“下一步”按钮,弹出表单向导的第五步对话框。8.在步骤5表单向导对话框中,选择用于排序的字段(最多为三个字段),然后指定排序的方式(升序或降序),单击“下一步”按钮,弹出表单向导的第六步对话框。9.在步骤6表单向导对话框中,输
14、入表单的名字,然后选择保存表单的方式,建议选择“保存表单并修改于表单设计器中”,在保存前可以用“预览”按钮查看表单运行的效果,最后单击完成。5.3表单设计器表单设计器VFP除除了了用用表表单单向向导导创创建建新新表表单单外外,还还可可通通过过表表单单设设计计器器来来创创建建新新表表单单。启启动动表表单单设设计计器器通通常常有有三种方式:三种方式:在在项项目目管管理理器器中中,选选择择“表表单单”后后,再再选选择择“新新建建”;从从“文件文件”下拉菜单中选择下拉菜单中选择“新建新建”后,后,选择选择“表单表单”为有效,单击为有效,单击“新建文件新建文件”按钮;按钮;在命令窗口中键入命令在命令窗口
15、中键入命令:CREATFORM|?。(其中使用?将弹出一对话框用于选择表单存放的路径和表单的文件名其中使用?将弹出一对话框用于选择表单存放的路径和表单的文件名)启动后的表单设计器的初始界面启动后的表单设计器的初始界面:一、设置与表单有关的工具一、设置与表单有关的工具在在“显示显示”下拉菜单下选择下拉菜单下选择“工具栏工具栏”常用表单控件常用表单控件标标签签编辑编辑框框命令命令组组复选复选框框列表列表框框表表格格计时计时器器OLE容器容器控件控件线线条条容容器器超级超级链接链接选定选定对象对象查看查看类类文本文本框框命令命令按钮按钮选项选项组组组合组合框框微微调调图图像像页页框框OLE绑定绑定控
16、件控件形形状状生成生成器锁器锁定定分隔分隔符符按钮按钮锁定锁定二、设置表单的数据环境二、设置表单的数据环境数数据据环环境境的的设设置置是是通通过过数数据据环环境境设设计计器器来来实实现现的的,打开表单的数据环境设计器可以采用以下步骤打开表单的数据环境设计器可以采用以下步骤:在在表表单单上上单单击击鼠鼠标标左左键键,激激活活该该表表单单,然然后后单单击击鼠鼠标标右键,系统将弹出快捷菜单;右键,系统将弹出快捷菜单;在在弹弹出出的的快快捷捷菜菜单单中中选选择择“数数据据环环境境”选选项项,单单击击鼠标左键,弹出数据环境设计器,鼠标左键,弹出数据环境设计器,在在“数数据据环环境境菜菜单单”中中选选择择
17、“添添加加”,系系统统将将弹弹出出一打开对话框用来选择要添加的表或视图一打开对话框用来选择要添加的表或视图三、在表单中添加字段三、在表单中添加字段将数据环境中的字段直接拖到表单中。四、调整控件的位置四、调整控件的位置(1)选定单个控件:单击(2)选定多个:按下Shift+单击(3)取消:Shift+单击该对象(4)移动控件 (5)改变控件大小(6)删除对象:编辑/清除 或 DEL键 (7)复制对象:编辑/复制/粘贴五、其它功能五、其它功能1.在表单上显示网格线:显示在表单上显示网格线:显示/网格线网格线2.鼠标操作时使控件对齐格线:格式鼠标操作时使控件对齐格线:格式/对齐格线对齐格线3.控件布
18、局格式化:使选定的控件居中、对齐等。控件布局格式化:使选定的控件居中、对齐等。4.调整调整Tab键次序:工具键次序:工具/选项选项/“表单表单”选项卡选项卡/“Tab键次序键次序”组合框中选定组合框中选定“交互交互”或或“按列表按列表”/显示显示/按按Tab键次键次序序六、在表单中添加对象六、在表单中添加对象1.引用包容对象引用包容对象在在VFP,由于容器对象的存在,对象可以嵌套。,由于容器对象的存在,对象可以嵌套。2.设置属性值设置属性值格式如下:格式如下:Parent.Object.Property=Value.3.调用方法调用方法格式如下:格式如下:Parent.Object.Metho
19、d例:例:用不同的方法向表单中添加用不同的方法向表单中添加“学号学号”和和“姓名姓名”字段字段1.将“学生”表添加到数据环境中,单击“表单控件”工具栏上“文本框”按钮,在表单合适位置单击建立名为“Text1”的文本框对象,在属性窗口“数据”选项卡选取“ControlSource”,单击属性设置框右边的下箭头,选择“学生.学号”。在Text1对象前建立名为“Lbel1”的标签对象,在属性窗口修改它的“Caption”属性为“学号”。2.在数据环境设计器窗口将“姓名”字段左拖到表单上Text1对象的下方(设置对象自动与字段关联)。3.运行表单5.4表单控件使用表单控件使用表单控件是表单设计的基础,
20、一个表单通表单控件是表单设计的基础,一个表单通常是由多个表单控件组成的。本节将介绍表单常是由多个表单控件组成的。本节将介绍表单控件的常用属性。控件的常用属性。标签标签(Label):是一图形控件,用于显示文本信息。是一图形控件,用于显示文本信息。属性属性功能功能默认值默认值备注备注Autosize根据内容是否自动调节大小根据内容是否自动调节大小.F.Caption在标签上显示的内容在标签上显示的内容Label1BackColor标签的背景颜色标签的背景颜色192,192,192(在在Backstyle=2时时不起作用)不起作用)ForColor标签内容的颜色标签内容的颜色0,0,0Left标签
21、距离表单左边框的长度标签距离表单左边框的长度与定时器配合,控与定时器配合,控制制Left或或Top能产能产生动态效果生动态效果Top标签距离表单上边框的长度标签距离表单上边框的长度Visable标签在运行时是否可见标签在运行时是否可见.t.Name引用该对象时所用的名称引用该对象时所用的名称Label1BackStyle指定标签的背景是否透明指定标签的背景是否透明1-不透明不透明Fontname标签内容字体的名字标签内容字体的名字ArialFontSize标签内容字体的大小标签内容字体的大小9例:在表单上创建一个标签,如下图所示。例:在表单上创建一个标签,如下图所示。步骤:1.打开表单设计器,
22、创建一个“标签”Label1和“命令按钮”command1。2.在属性窗口修改Label1的属性如下:Caption:欢迎使用Visual Foxpro6.0 FontName:隶书FontSize:28 WordWrap(折行):.T.AutoSize(自动大小):.T.3.在属性窗口修改Command1的属性如下:Caption:关闭3.编写编写Command1的的Click事件代码事件代码双击Command1按钮,打开事件代码窗口,写完程序语句后关闭。4.运行表单运行表单。文本框(文本框(TextBoxTextBox)文本框用于显示和编辑一个变量或字段的值。一、文本框常用属性属性功能控制
23、源(ControlSource)指定与对象(变量或数据库字段)绑定的数据源值(Value)文本框的值,并在框中显示设置焦点(SetFocus)将焦点放在控件上二、文本框生成器使用文本框生成器可以非常方便的为控件设置常用的的属性。打开生成器方法:鼠标指向对象右击,从弹出的快捷菜单中选定生成器命令生成器只能设置一些常用属性,并不是所有对象都有生成器。生成器只能设置一些常用属性,并不是所有对象都有生成器。格式选项卡:格式选项卡:主要供用户设定文本框的各种格式,主要供用户设定文本框的各种格式,以及输入掩码的类型。以及输入掩码的类型。文本框是否可用,Enabled选定时,框中值只能由字母组成,相当For
24、mat值为A,只用于字符型数据。运行表单时,框运行表单时,框中内容无法修改中内容无法修改,Readonly。当框中获得焦点,框中数据当框中获得焦点,框中数据将被选定,相当将被选定,相当Format值值为为K。当失去焦点时,框中数据是否保持选中状态。只用于数值型数据,选定时,显示小数点左边零。相当InputMask样式选项卡样式选项卡:主要用于设置主要用于设置文本框的外观、文本框的外观、边框和字符的边框和字符的对齐方式。对齐方式。相当SpecialEffect值为3D相当BorderStyle值为1相当Alignment的值为3值选项卡值选项卡相当ControlSource编辑框(编辑框(Edi
25、tBox)功能:为用户提供一个文本编辑器,主要用来处理备注类型字段。属性功能默认值控制源(ControlSource)指定与对象绑定的数据源滚动条(ScrollBars)为用户设置滚动条2例:创建例:创建一个文本框用来接收用户输入口令,并检查一个文本框用来接收用户输入口令,并检查用户输入口令与预设口令用户输入口令与预设口令“12345”是否一致。是否一致。步骤:1.打开表单设计器,创建一个表单,在表单中建一个文本框Text1 和两个标签Label1、Label2,一个命令按钮Command12.设置对象属性:Label1 caption:请输入口令 fontname:黑体 fontsize:1
26、4 autosize:.t.Fontbold:.t.Label2 caption:(空)fontname:楷体 autosize:.t.Fontsize:20 fontbold:.t.Text1 passwordchar:*value:(无)Command1 caption:关闭3.编写程序代码编写程序代码Text1的的Valid事件代码:事件代码:Command1的的Click代码:代码:命令按钮命令按钮属性功能默认值Caption设置命令按钮标题Command1Name对象引用名Command1Picture 在命令按钮上显示图形ShowTips鼠标指向按钮时是否出现提示.T.ToolTi
27、pText提示文本显示内容专门用于触发一个事件完成一个动作。Click 事件单击按钮时所执行的操作。如:Thisform.Release(关闭表单)命令按钮组命令按钮组命令按钮组与组内的各个命令按钮都有自已的属性、事件和方法。1.命令按钮组的命令按钮组的Value属性属性单一某个按钮时,组控件获得一个数值或字符串。2.Click事件事件单击命令按钮组内的空白处,组控件的单击命令按钮组内的空白处,组控件的Click事件被触发,否则事件被触发,否则触发所单击的命令按钮的触发所单击的命令按钮的Click事件。事件。3.容器中对象的引用容器中对象的引用如:引用名为CommandGroup1的第一个和第
28、二个命令按钮。Thisform.CommandGroup1.Command1(绝对引用)Thisform.CommandGroup1.Command2(绝对引用)This.Command1(相对引用)4.容器及其对象的编辑容器及其对象的编辑用鼠标选定容器就能对容器进行编辑;右击容器,在弹出的快捷菜单中选择“编辑”命令,容器周围出现虚框,可以编辑容器中对象。例:在表单上建立一个命令按钮组包含两个按钮,一个按例:在表单上建立一个命令按钮组包含两个按钮,一个按钮用来向前移动记录指针,另一个用来向后移动记录指针。钮用来向前移动记录指针,另一个用来向后移动记录指针。步骤:1.单击“表单控件”工具栏上的“命令按钮组”,在表单上创建一个命令按钮组。2.将Command1和Command2的Caption 属性分别设为“上一条”和“下一条”。3.将“学生”表添加到数据环境中。4.编写命令按钮组编写命令按钮组CommandGroup1的的Click事件代码。事件代码。
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100