VFP-表单设计基础 (2).ppt

上传人:牧羊曲112 文档编号:6522836 上传时间:2023-11-08 格式:PPT 页数:39 大小:654KB
返回 下载 相关 举报
VFP-表单设计基础 (2).ppt_第1页
第1页 / 共39页
VFP-表单设计基础 (2).ppt_第2页
第2页 / 共39页
VFP-表单设计基础 (2).ppt_第3页
第3页 / 共39页
VFP-表单设计基础 (2).ppt_第4页
第4页 / 共39页
VFP-表单设计基础 (2).ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《VFP-表单设计基础 (2).ppt》由会员分享,可在线阅读,更多相关《VFP-表单设计基础 (2).ppt(39页珍藏版)》请在三一办公上搜索。

1、1,第6章 表单设计基础,6.1 表单的基本操作6.2 面向对象程序设计基础6.3 表单设计器6.4 常用表单控件,2,6.1 表单的基本操作,表单(Form)是VFP提供的用于建立应用程序界面的最主要的对象之一,相当于WINDOWS应用程序的窗口。,表单的基本操作过程:创建表单 用表单设计器修改或新建表单 保存表单 运行表单,3,6.1.1 使用表单设计器创建或修改表单,1启动表单设计器 在命令窗口输入命令:CREATE FORM 表单名(创建)MODIFY FORM 表单名(修改),4,2表单设计器介绍“表单设计器”窗口包含正在设计的表单,表单窗口只能在“表单设计器”窗口内移动。用户可在表

2、单窗口中可视化地添加和修改控件、改变控件布局。以新建方式启动表单设计器时,系统将默认为用户创建一个空白表单。,6.1.1 使用表单设计器创建或修改表单,“对象”下拉列表框图(P182),页框选项卡,属性设置框(P183),5,3数据环境“数据环境”指表单(或报表)所用的数据源,包括表、视图和它们之间的关系。表单设计器环境下,单击“表单设计器”工具栏上的“数据环境”按钮,或选择“显示”“数据环境”命令,即可打开“数据环境设计器”窗口,此时,系统菜单栏上将出现“数据环境”菜单。,6.1.1 使用表单设计器创建或修改表单,6,6.1.1 使用表单设计器创建或修改表单,4快速表单 能在表单窗口为当前表

3、单迅速产生选定的字段变量,调用“表单生成器”来完成。,调用表单生成器的方法有三种:系统菜单中【表单】|【快速表单】命令。“表单设计器”工具栏中的“表单生成器”按钮。右击表单窗口,在弹出的快捷菜单中选择“生成器”命令。,7,6.1.2 保存后运行表单,在命令窗口输入命令:DO FORM,8,6.2 面向对象程序设计基础,9,1对象 客观世界的任何事物都可以被看成是对象,对象是反映客观事物属性及其行为特征的描述,是具体的。对象属性:用来表示对象的状态,用变量来描述。对象方法:描述对象行为的过程,用过程或函数实现,6.2.1 对象,10,6.2.2 类(P250),类:对一类相似对象的性质描述,这些

4、对象具有相同种类的属性以及方法。相当于C语言中的结构体,但除了描述变量成员之外,还要描述对象的行为特征,即函数。,对象和类的区分:类是对象的模板,规定对象的属性,事件和方法程序。对象通过类来产生,通过类来定义对象。对象是类的实例。任何一个对象都是某个类的一个实例。类抽象,不分配存储空间;对象具体,占用内存空间。,对象属性访问以及对象方法调用的基本格式:.(参数列表),11,类具有继承性、封装性和多态性三种基本特性。1)继承性:指通过继承关系利用已有的类构造新类。在面向对象的方法里,继承是指在基于父类(现有的类)创建子类(新类)时,子类继承了父类的方法和属性,可以为子类添加新方法和属性。,2)封

5、装性 封装是一种信息隐藏技术,对象内部对用户是隐藏的,不可直接访问;用户只能见到对象封装界面上的信息,通过对象的外部接口访问对象。用户向对象发送消息,对象根据收到的消息调用内部方法作出响应。,1类的特性,3)多态性 所谓多态即一个名词可具有多种语义,多个函数可具有相同的函数名,但实现方法不同。,12,VFP下,进行面向对象的程序设计或创建应用程序,要用到VFP系统提供的基础类,即VFP基类,它是系统本身内含的,并不存放在类库中。基类是VFP为用户预先定义的类,用户可用基类来创建新类,此时基类是父类,新类是子类。,2VFP中的类,Visual Foxpro基类列表,14,15,6.2.3 容器类

6、和控件类,VFP中的类分为两种:容器类(container classes)与控件类(control classes),可分别生成容器(对象)和控件(对象)。,容器:可容纳其他对象,并允许访问所包含的对象。容器(如表单)自身是一个对象,可以把按钮、编辑框、文本框等包含在其中。常用容器及对象见P181-表6.2,控件:不能容纳其他对象。当将一个控件对象放入容器中,编程时引用该对象时有两种方法。,16,自定义类的创建与使用,将表单和控件保存为类 1)【文件】|【另存为类】命令,打开“另存为类”对话框.2)在“另存为类”对话框中选择“当前表单”或“选定控件。在“类名”框中输入类的名称,在“文件”框中

7、输入保存类的文件名(类库名)。,17,用命令方式创建类 命令格式:create class 或 create class of 通过编程创建类 define class as 功能:创建一个新类,以为基类,以为名,创建自定义类(P252),18,关于自定义类的几点说明,一个类库中可容纳多个类 创建的类可以由基类派生,也可由用户自己的类派生 如新类是基于容器类的,可象设计表单一样设计新类,将类添加到控件工具栏 表单控件工具栏查看类添加,类的编辑与删除,remove class of,19,1.拖动控件到表单,创建相应的控件对象。2.由类创建对象 格式:=createobject()功能:将以为名

8、的类定义成以为名的对象.,对象的建立和使用,例:创建一个按钮标签对象labelTest.(1)SET CLASSLIB TO myclass ADDITIVE 指明要创建的对象保存在哪个类库(.vcx 文件)中。关键字 ADDITIVE 规定在打开指定类库的同时并不关闭其他早先已打开的类库。(2)labelTest=CREATEOBJECT(“mylabel)在此代码中假设保存在类库中的表单类名称为mylabel。,对象由类来定义,只有具体的对象才能实现类的事件或方法的操作.createobject()函数可将类定义成对象.,20,6.3 用表单设计器设计表单,基本步骤1表单设计器窗口添加控件

9、对象,操作控件2在属性窗口设置对象属性 3.控件布局设置Tab键次序 编写事件代码或方法程序,可在设置框中直接输入从系统提供的一组值中指定需指定文件名或对话框中指定时,后有默认值的设置属性设为空,“工具”菜单中的“选项”命令,打开“选项”对话框。选择“表单”选项卡。在“Tab键次序”下拉列表框中选择“交互”或“按列表”,控件的基本操作 选定控件 移动控件 调整控件大小 复制控件 删除控件,21,6.3.2 事件过程和方法程序,1.事件 事件(Event)是一种由系统预先定义而由用户或系统引发的动作,作用于对象上。事件过程(Event Procudure)是为处理特定事件而编写的一段程序。当事件

10、由用户触发(如C1ick)或由系统触发(如Load)时,对象就会对该事件作出响应(Respond)。响应某个事件后所执行的程序代码就是事件过程。,VFP系统中,事件集是固定的,用户不能定义新的事件,对象可以响应50多种事件。,22,VFP基类中,最小事件集(即所有对象都包含这些事件),23,VFP中的表单常用事件,(1)Click事件 单击鼠标左键时引发。(2)DblClick事件 用鼠标双击对象时引发。(3)Rightclick事件 鼠标右键单击对象时引发。(4)Load事件 在表单对象建立之前引发,分配存储空间。(5)Init事件 在表单建立时引发,表单对象初始化。(6)Activate事

11、件 表单在内存中已建立,再激活表单。(7)Destroy事件 在对象释放时引发。(8)Unload事件 在表单对象从内存释放时引发,是表单对象释放时最后一个引发的事件。,24,例6-1 建立表单,为表单设置Load等事件的方法程序,然后 运行表单,观察各个事件发生的先后顺序。,操作步骤如下:,新建一个空白表单 为Load事件输入方法程序:wait“load”window 为Init事件输入方法程序:wait“init”window 为Activate事件输入方法程序:wait“activate”window 为Destory事件输入方法:wait“destory”window 为Unload事

12、件输入方法程序:wait“unload”window 保存并运行表单(屏幕右上角出现提示窗口,单击鼠标观察窗口的变化。单击表单的关闭按纽或关闭表单时,提示窗口将继续变化。),25,Click:鼠标左键单击对象时发生的事件。Dbclick:鼠标左键双击对象时发生的事件。Rightclick:鼠标右键单击对象时发生的事件。GotFocus:对象接收到焦点时发生的事件。LostFocus:对象失去焦点时发生的事件。KeyPress:当用户在对象上按下或释放键时发生的事件。InteractiveChange:以交互方式改变对象的值时发生的事件。ProgrammaticChange:以编程方式改变对象的

13、值时发生的事件。,VFP对象的其他常用事件,26,方法(Method):附属于对象的行为和动作,也称方法程序。方法属于对象的内部函数,用于完成某种特定的功能而不一定响应某一事件,如添加对象(Addobject)方法、绘制矩形(Box)方法、释放表单(Release)方法等。方法也被“封装”在对象中,不同的对象具有不同的内部方法。VFP提供了百余个内部方法供不同的对象调用。与事件过程不同的是,根据需要可由用户自行建立新方法。,2.方法程序,27,事件过程由事件的激发而调用其代码,也可以在运行中由程序调用其代码,而方法的代码只能在运行中由程序调用。,事件与方法的不同,28,1.引用对象时有两种方法

14、 绝对引用:从最高容器开始逐层向下直到某个对象为止.相对引用:从正在为编写事件代码的对象出发,通过逐层向高一层或低一层直到另一对象的引用。,6.3.3 设置引用对象的属性和其调用方法,2.设置引用对象的属性和方法 引用对象属性的设置 引用对象.属性=属性值 当一个对象的多个属性要设置时,常用以下格式:With Endwith,29,调用对象方法的格式:引用对象.方法名(参数表)例如:Thisform.show(1)&显示表单FORM1 Thisform.cls&表单FORM1清屏,3调用对象的方法,4执行对象的事件 引用对象.事件名(参数表)例如:Thisform.activate&Thisf

15、orm的激活事件comm1.Click&COMM1的单击事件,30,例6-2 如Form1中有一个命令按钮组commandgroup1,该命令按 钮组有两个命令按钮:command1 和command2。,1)在命令按钮command1的单击事件代码中修改该按钮的标题为“确定”。2)在命令按钮command1的事件代码中修改命令按钮command2的标题为“取消”。3)在命令按钮command1的事件代码中修改表单的标题为“测试窗口”。,this.caption=”确定”,thisform.Cmand2.caption=“取消”或 mand2.caption=取消,mand2.caption=

16、“取消”X,This.Parent.parent.Caption=”测试窗口”或 thisform.caption=”测试窗口”,31,例6-3 设计一个只含文本框控件的表单(如P187图6.17所示),要 求逐次单击文本框的内部能轮流显示当前的日期与时间。,步骤:1.创建一个空白表单对象,并设置该对象的 caption属性为“日期和时间”;2.添加文本框控件对象;3.设置文本框的属性(字体,布局等);4.编写代码 在表单加载时定义公共逻辑变量flag.在单击事件(click)中编写代码.,32,例6-4 设计一简单的绘图程序,要求在表单上拖动时能画线。,解析:绘画的3个步骤 1.在表单上按下

17、鼠标键 2.在按下鼠标键的同时拖动鼠标 3.释放鼠标,使键弹起,对应的事件及其代码:1.表单的MouseDown()事件代码:ok=.t.2.表单的MouseMove()事件代码:如条件满足,则画线.3.表单的MouseUp()事件代码:ok=.f.4.在加载表单时进行画笔的初始化,并定义一个公共逻辑变量,使MouseDown()、MouseMove()、MouseUp()事件都可访问。,即可设置一逻辑变量ok,当在表单上按下鼠标时ok=.t.,当鼠标释放时,使ok=.f.。当鼠标拖动时检测是否ok=.t.是则执行每拖动一个像素,画一个点,否则不画;,33,6.3.4 为表单添加新的属性和方法

18、,1创建新属性 步骤:1)【表单】菜单中的【新建属性】,打开“新建属性”对话框。2)在“名称”框中输入属性名称3)在“说明”框中输入新建属性的说明信息,34,2创建新方法 步骤如下:1)【表单】菜单中【新建方法程序】,打开“新建方法程序”对话框。2)在“名称”框中输入方法名。3)有选择地在“说明”框中输入新建方法的说明信息。,6.3.4 为表单添加新的属性和方法,35,6.3.5 运行表单,1在设计时运行表单 项目管理器中,选择表单,单击“运行”按钮。表单设计器中,【表单】菜单中【执行表单】命令,或常用工具栏上的“运行”按钮。【程序】菜单中【运行】命令,打开“运行”对话框,然后选择表单,单击“

19、运行”按钮。命令窗口输入命令:DO FORM。,36,2在程序中调用表单,命令:DO FORM NAMELINKED WITH,TONOSHOWNAME:如有NAME子句,系统建立指定名字的变量,并使它指向表单对象。否则,系统建立与表单文件名相同的变量,并使它指向表单对象。LINKED:如有LINKED关键字,表单和表单对象变量将链接起来,这时,表单对象将随指向它的变量的清除而关闭(释放),否则,即使变量已经清除(如超出作用域,用RELEASE命令清除),表单对象依然存在。但不管有无LINKED关键字,指向表单对象的变量不会随表单的关闭而清除。TO:用于从模式表单返回值。WITH:用于向表单传

20、递参数。NOSHOW:如包含NOSHOW,表单运行时将不显示,直到将表单的Visible属性设置为.T.,或调用表单的Show方法。,37,6.3.6 表单与其它程序模块间的通信,1将参数传递到表单 要将参数传递到表单,可按如下操作:1)在表单的INIT事件中,用PARAMETERS定义形参:PARAMETERS param1,param2 2)在表单的INIT事件中可直接访问参数,如在表单的其它方法或事件中需使用该参数,必需在表单的INIT事件中将参数保存到表单的属性或变量中。3)运行表单时,使用带WITH子句的DO FORM命令,系统会将WITH子句的实参值传递到INIT事件代码的PARA

21、METERS子句中的各形参。,38,2从表单返回值 只有模式表单可返回值。要从表单返回值可按如下操作:1)将表单的WINDOWTYPE属性设置为1,使表单成为模式表单,2)在表单的UNLOAD事件代码中,包含一个带返回值的RETURN命令。3)运行表单时,在DO FORM命令中包含TO关键字。,6.3.6 表单与其它程序模块间的通信,3直接访问表单对象 表单运行后,在其释放前可通过指向表单的变量访问表单对象及表单中所有控件对象。,39,6.3.7 使用表单集扩充表单,1创始表单集 表单集是一个包含有一个或多个表单的容器。可在“表单设计器”中创建表单集,若要创建表单集,在系统菜单中选择【表单】|【创建表单集】命令。,2添加和删除表单添加:在系统菜单中选择【表单】|【添加新表单】命令。删除:(1)在“属性”窗口的对象列表框中,选择要删除的表单。(2)在系统菜单中选择【表单】|【移除表单】命令。如果表单集只有一个表单,可删除表单集而只剩下表单,方法:在系统菜单中选择【表单】|【移除表单集】命令。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号