程序设计中表单设计_第1页
程序设计中表单设计_第2页
程序设计中表单设计_第3页
程序设计中表单设计_第4页
程序设计中表单设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计中表单设计第一页,共五十二页,编辑于2023年,星期一8.1面向对象程序设计简介OOP(object-orientedprogramming)面向对象程序设计方式。以对象和数据结构为程序设计的中心,而不是操作和过程为中心。着重于合理地创建类与对象、如何建立对象之间的联系、如何利用对象来简化程序的设计等。Vfp支持OOP,并且提供一系列可视化开发工具,如类设计器、表单设计器、报表设计器、菜单设计器等。第二页,共五十二页,编辑于2023年,星期一8.1.2对象与类的概念1.对象(Object):客观世界中存在的实体。是反映客观事物属性及行为特征的描述。属性是用来描述对象的状态方法用来描述对象的行为对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是“类”的具体实例。第三页,共五十二页,编辑于2023年,星期一2.属性(Property):对象的各种特征数据。例:窗口的标题;窗口的大小;窗口的前景和背景颜色;窗口中所显示信息的内容及格式;窗口中提供了哪些控件;窗口中每个控件在窗口的位置;窗口中每个控件的大小;窗口中的控件应如何操作。第四页,共五十二页,编辑于2023年,星期一3.方法(Method):对象的行为和动作。对象能够执行并完成相应的任务的操作命令代码的集合。Thisform.releaseThisform.refreshThisform.text1.setfocus4.事件(Event):识别和响应的动作。Click,DblClick,MouseMove,KeyPressLoad,Init,Activate,UnloadTimer,Error第五页,共五十二页,编辑于2023年,星期一5.类(class):对象的归纳和抽象。类是对一批相似的对象的性质描述,这些对象具有相似的属性与方法。类是具有共同属性、共同操作性质的对象的集合,具体来说,对象可进行分为类。人作为一个类,其属性:姓名,性别,生日,身高,血型,体重等某一个人:张三或李四,那就是一个具体的对象。

第六页,共五十二页,编辑于2023年,星期一8.1.3对象与类的特征类的牲特征封装性(Encapsulation):完全封装的实体,具有独立性,使用安全方便。层次性(Arrangement):父类与子类,层次分明。继承性(Inheritance):类可以生成若干个对象。抽象性(Abstract):忽略其内部实现细节,隐藏其复杂性,封装成一个统一体。多态性(ManyState):同类对象可以有不同的表现形式。第七页,共五十二页,编辑于2023年,星期一8.1.3对象与类的特征继承性(Inheritance):指通过继承关系利用已有的类构造新类。VisualFoxPro系统赋给基类相应的缺省值。在创造对象时,可以利用基类派生出另一个新类。通常把从已有的类派生出的新类称为子类,已有的类称为父类。子类不但具有父类的全部属性和方法,而且还允许用户根据需要修改对已有的属性和方法进行修改或添加新的属性和方法。第八页,共五十二页,编辑于2023年,星期一8.1.3对象与类的特征封装性(Encapsulation):是指类的内部信息对用户是隐蔽的。在类的引用过程中,用户只能看到封装界面上的信息,对象的内部信息(数据结构及操作范围、对象间的相互作用等)则是隐蔽的,只有程序开发者才了解类的内部信息。由于类具有封装性,因此不必被类的概念或类的抽象所困扰。在使用类时,用户不需熟悉对象内部的复杂性,只需掌握类的使用方法。第九页,共五十二页,编辑于2023年,星期一8.1.4VisualFoxPro的基类基类(BaseClass)又可以分成容器类(ContainerClass)和控件类(ControlClass)。控件类不能容纳其它对象,它没有容器类灵活。如:Text,Label,Command容器类(Containers)可以容纳其它对象,并允许访问所包含的对象。如:Form第十页,共五十二页,编辑于2023年,星期一8.1.5对象的引用对某个对象操作的通过对象的引用来实现。格式:<对象引用>.<属性>格式:<对象引用>.<方法>引用的方式有两种:绝对引用和相对引用1.绝对引用:通过完整容器层次来引用某个对象。FormSet1.Form1.Command1.Endabled=.F.FormSet1.Form1.Text1.Setfocus第十一页,共五十二页,编辑于2023年,星期一8.1.5对象的引用2.相对引用使用特定的参照关键字指明所要处理的对象。(见表8-3)ParentThisThisformThisFormSet例子This.parent.parent.text1.setfocus第十二页,共五十二页,编辑于2023年,星期一8.2表单设计概述8.2.1创建表单的途径8.2.2表单修改与运行8.2.3常用的表单事件与方法8.2.4用表单向导创建表单(对照内容实验即可,略…)第十三页,共五十二页,编辑于2023年,星期一8.2.1创建表单的途径1.表单向导2.表单生成器3.表单设计器,最常用的最有效的方法。(介绍)4.通过编程方法生成表单第十四页,共五十二页,编辑于2023年,星期一8.2.1创建表单的途径常用方法:首先表单设计器,其次表单向导(1)menu(2)commandsyntax:createform<FormFileName>[例]createformfac第十五页,共五十二页,编辑于2023年,星期一第十六页,共五十二页,编辑于2023年,星期一8.2.2表单修改与运行1.修改:syntax:modifyfrom<FormFileName>[例]modifromfac2.运行:doform<FormFileName>[with<参数1>,<参数2>…][例]doformfacwith5,a第十七页,共五十二页,编辑于2023年,星期一8.2.3常用的表单事件与方法1.常用表单事件(event):(1)Init事件:对象建立时引发。(2)Activate事件:对象激活时引发。(3)Destroy事件:对象释放时引发。(4)Load事件:对象建立之前引发。(5)Unload事件:表单释放之前最后引发的事件。(6)Error事件:运行产生错误时引发。(7)Gotfocus事件:获得焦点时引发。(8)Click事件:鼠标单击时引发。第十八页,共五十二页,编辑于2023年,星期一8.2.3常用的表单事件与方法2.常用表单方法(Method):Release:将对象从表单中释放。Refresh:刷新对象的信息。Show:显示表单。Hide:隐藏表单。SetFocus:使对象获得焦点,成为活动对象。第十九页,共五十二页,编辑于2023年,星期一8.3表单设计器的使用窗口及工具栏的使用演示讲解…第二十页,共五十二页,编辑于2023年,星期一8.3表单设计器的使用1.表单生成器(略…)2.表单设计器设计表单第二十一页,共五十二页,编辑于2023年,星期一8.3.4用表单设计器设计表单[例8-5]设计一个应用程序的密码输入对话框演示讲解…第二十二页,共五十二页,编辑于2023年,星期一8.4数据环境与数据绑定1.启动数据环境设计器2.向数据环境添加表或视图3.在数据环境中设计关系[例]…第二十三页,共五十二页,编辑于2023年,星期一思考题什么是对象、类、属性、事件和方法?常用的基类有哪些?叙述类的继承性和封装性的主要特征。关于表单的操作及步骤?第二十四页,共五十二页,编辑于2023年,星期一第二十五页,共五十二页,编辑于2023年,星期一第16讲表单设计二常用的表单控件:Label,text,edit,command,option,timer…属性:caption,font,color,value,source事件:click,load,activate,init方法:release,refresh,setfocus,hide,show第二十六页,共五十二页,编辑于2023年,星期一8.4数据环境与数据绑定添加表与视图数据绑定ControlSourceRecordSourceRecordSourceTypeRowSourceRowSourceType第二十七页,共五十二页,编辑于2023年,星期一8.4数据环境与数据绑定第二十八页,共五十二页,编辑于2023年,星期一《演示实验》

数据环境使用开始实验单击右面按钮开始演示实验第二十九页,共五十二页,编辑于2023年,星期一8.5常用表单控件1.标签2.命令按钮3.文本框关注:属性事件方法第三十页,共五十二页,编辑于2023年,星期一8.5常用表单控件第三十一页,共五十二页,编辑于2023年,星期一《演示实验》

有标签、文本、命令按钮的表单开始实验单击右面按钮开始演示实验第三十二页,共五十二页,编辑于2023年,星期一8.5.2文本框和编辑框文本框TextBox与编辑框EditBox的区别:文本框:只能输入一行,数据类型可以C、N、L、D编辑框:可以多行输入,数据类型只能是字符型第三十三页,共五十二页,编辑于2023年,星期一8.5.2文本框和编辑框[例8-7]ifi=.t. thisform.text1.value=date() thisform.text1.dateFormat=12 thisform.text1.DateMark="-"i=.f.elsethisform.text1.value=time()i=.t.endifthisform.refresh第三十四页,共五十二页,编辑于2023年,星期一8.5.2文本框和编辑框[例8-8]第三十五页,共五十二页,编辑于2023年,星期一thisform.edit1.value=""xs=alltrim(thisform.text1.value)gotopk=0scan ifzgda.姓名=xs thisform.edit.value=thisform.edit1.value+zgda.姓名+CHR(13) k=k+1endscanifk=0 Messagebox("查无此姓氏")endifthisform.text1.setfocus第三十六页,共五十二页,编辑于2023年,星期一《演示实验》

文本、编辑框控件表单开始实验单击右面按钮开始演示实验第三十七页,共五十二页,编辑于2023年,星期一[例8-10]选择字体第三十八页,共五十二页,编辑于2023年,星期一*在Optiongroup1的click事件中代码如下:docase casethis.value=1 thisform.text1.FontName="黑体" casethis.value=2 thisform.text1.FontName="宋体" casethis.value=3 thisform.text1.FontName="隶书" casethis.value=4 thisform.text1.FontName="楷体_GB2312"endcase第三十九页,共五十二页,编辑于2023年,星期一《演示实验》

单选按钮组控件表单开始实验单击右面按钮开始演示实验第四十页,共五十二页,编辑于2023年,星期一8.5.5命令按钮组[例8-11]第四十一页,共五十二页,编辑于2023年,星期一8.5.5命令按钮组docase casethis.value=1 gotop this.dyy.enabled=.f. this.syy.enabled=.f. this.xyy.enabled=.t. this.zhyy.enabled=.t. casethis.value=2 skip-1 this.xyy.enabled=.t. this.zhyy.enabled=.t. ifbof() this.dyy.enabled=.f. this.syy.enabled=.f. gotop endif第四十二页,共五十二页,编辑于2023年,星期一《演示实验》命令按钮组控件表单开始实验单击右面按钮开始演示实验第四十三页,共五十二页,编辑于2023年,星期一8.5.6计时器Timer能够间隔地执行timer事件代码,常作为后台处理,运行时时钟图标不见。第四十四页,共五十二页,编辑于2023年,星期一8.5.6计时器*Timer1的Timer事件代码:ifthisform.label1.left+thisform.label1.width<0 thisform.label1.left=thisform

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论