多表单应用程序ppt课件_第1页
多表单应用程序ppt课件_第2页
多表单应用程序ppt课件_第3页
多表单应用程序ppt课件_第4页
多表单应用程序ppt课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、8.3 多表单应用程序多表单应用程序 8.3.1 MDI文档界面文档界面多文档界面与单文档界面的概念多文档界面与单文档界面的概念多文档界面多文档界面Multiple-Document Interface,简称,简称MDI是指应用程序主窗口中能包含多个应用是指应用程序主窗口中能包含多个应用程序窗口。程序窗口。 单文档界面单文档界面Single-Document Interface,简称,简称SDI是指应用程序窗口只允许显示和操作一个是指应用程序窗口只允许显示和操作一个文档,此文档直接显示在应用程序窗口内。文档,此文档直接显示在应用程序窗口内。MDI文档界面的设计文档界面的设计表单类型:顶层表单、

2、子表单和浮动表单表单类型:顶层表单、子表单和浮动表单 顶层表单:是一个没有父表单的独立表单。顶层表单:是一个没有父表单的独立表单。子表单:用于创建子表单:用于创建MDI应用程序的文档窗口,它包应用程序的文档窗口,它包含在另一个主窗口中。含在另一个主窗口中。 浮动表单:是由子表单变化而来的,它属于父表单浮动表单:是由子表单变化而来的,它属于父表单的一部分,但并不是包含在父表单中。的一部分,但并不是包含在父表单中。 表单类型表单类型设定1顶层表单设定:在“表单设计器中将表单的 ShowWindow 属性设置为“2 - 作为顶层表单”。2子表单设定:将表单的 ShowWindow 属性设置为下列值之

3、一:0 - 在屏幕中 (默许)。1 - 在顶层表单中。3浮动表单设定:先将表单的 ShowWindow 属性设为0或1即子表单),然后设置Desktop属性值为.T.。MDI应用程序的建立建立MDI应用程序的步骤:1建立顶层表单;2建立相关的子表单;3在顶层表单中调用子表单。MDI窗口之间的参数传递命令格式:DO FORM WITH TO 功能:主表单与子表单相互传递数据。阐明:(1WITH 子句由主表单向子表单传递数据。(2TO 子句从子表单返回的值存入到中。(3在子表单的Init事件代码中应该有如下代码来接受主表单中WITH 的数据: PARAMETERS 和中的参数用逗号分隔,中的参数数

4、目不能少于中的参数数目。多余的参数变量赋值为.F.。 主表单带参数调用子表单,要求子表单WindowtType属性值要设为1-模式表单。例8 创建如下所示的顶层表单以及子表单,要求用户从子表单中输入的圆半径值,在主表单中求出相应的圆周长和圆面积。设计步骤:设计主表单circle.scx) 新建表单,进入表单设计器,增加4个标签,3个文本框和2个命令按钮。 编写程序代码:编写【输入半径】按钮Command1的Click事件代码:bj=THISFORM.Text3.ValueDO FORM radius WITH bj TO rTHISFORM.Text1.Value=2*pi()*rTHISFO

5、RM.Text2.Value=pi()*r2THISFORM.Text3.Value=r设计子表单radius.scx) 新建表单,进入表单设计器,增加1个标签,1个文本框和1个命令按钮。用户定义属性:R,初始值为0。编写程序代码:radius.scx表单的Init事件代码:PARAMETERS bj主表单向子表单传递数据radius.scx表单的Activate事件代码:THISFORM.Text1.Setfocusradius.scx表单的Unload事件代码:RETURN THISFORM.R编写【确定】按钮Command1的Click事件代码:THISFORM.R=THISFORM.T

6、ext1.ValueTHISFORM.Release带参返回调用8.3.2 表单集表单集 表单集表单集Formset是一个容器,其中可包含是一个容器,其中可包含多个表单,并将这些表单作为一个组进行操作。多个表单,并将这些表单作为一个组进行操作。 表单集具有以下优点:表单集具有以下优点:(1可同时显示和隐藏表单集中的表单。可同时显示和隐藏表单集中的表单。(2能可视化地调整各个表单的相对位置。能可视化地调整各个表单的相对位置。(3由于表单集及其所有的表单都存储在同一由于表单集及其所有的表单都存储在同一个个.SCX文件中,因而共享一个数据环境,数据表关文件中,因而共享一个数据环境,数据表关联后,在一

7、个表单中的父表移动记录指针,在另一联后,在一个表单中的父表移动记录指针,在另一个表单中的子表的记录指针也相应移动。个表单中的子表的记录指针也相应移动。(4运行表单集时,将加载表单集中所有表单和运行表单集时,将加载表单集中所有表单和表单的所有对象。表单的所有对象。表单集的建立及相关操作翻开“表单设计器”,从【表单】菜单中,选择【创建表单集】命令,即可建立一个新的表单集Formset1,它在“属性窗口的对象列表中。 添加新表单:主菜单的【表单】菜单,选择【添加新表单】命令 删除表单:首先选择要删除的表单,然后从主菜单的【表单】菜单,选择【移除表单】命令,删除选定的表单。 删除表单集:如果表单集中只

8、剩一个表单,则可删除表单集。 表单集的释放:命令RELEASE THISFORMSET或设置为随最后一个表单的释放而自动释放,此时表单集的AutoRelease属性为.T.。 例例 利用表单集建立如下所示增资情况查询表单利用表单集建立如下所示增资情况查询表单zzcx.scx。步骤1:新建表单集zzcx.scx 步骤2:向表单集添加新表单 步骤3:设置数据环境步骤4:设置Form1和Form2表单(1设置Form1:将数据环境中rsb.dbf窗口的标题栏拖放到Form1表单中,产生一个人事表表格。在表格的上方添加1个标签和1个命令按钮。编写【终了】按钮Command1的Click事件代码:REL

9、EASE THISFORMSET(2设置Form2:将数据环境中zz.dbf窗口的标题栏拖放到Form1表单中,产生一个增加工资的表格。 8.4 类类 8.4.1 基本概念基本概念类的基本概念类的基本概念类类class) :类是对一组具有相同属性和:类是对一组具有相同属性和方法的对象的抽象,是对象的原型。方法的对象的抽象,是对象的原型。 对象对象object) :是将数据和对该数据的所:是将数据和对该数据的所有必要操作的代码封装起来的程序模块,即有必要操作的代码封装起来的程序模块,即对象是包含属性数据和行为方法的对象是包含属性数据和行为方法的逻辑实体。逻辑实体。基类基类base class)

10、:基类是:基类是VFP系统定义系统定义的类,它是用户创建新类的基础。的类,它是用户创建新类的基础。父类父类parent class和子类和子类subclass):以某个类的):以某个类的定义为起点派生出来的新类称为子类,前者称为父类。子类定义为起点派生出来的新类称为子类,前者称为父类。子类将继承父类的全部特征。将继承父类的全部特征。 用户定义类用户定义类user-defined class) :是指由基类派生出来的子类,是指由基类派生出来的子类,VFP还允许从用户定义类再还允许从用户定义类再派生出子类,因此用户定义类可以是子类,也可作为父类。派生出子类,因此用户定义类可以是子类,也可作为父类。

11、 容器类容器类container classes和控件类和控件类control clases):):类库类库class library):类库是用来存储以可视方式设计):类库是用来存储以可视方式设计的类的文件,其文件扩展名为的类的文件,其文件扩展名为.VCX。 类的特征类的特征类的继承性:是指用户可以通过已经存在的类的继承性:是指用户可以通过已经存在的类来构造出新类,新类继承该类的所有属性类来构造出新类,新类继承该类的所有属性和事件,并加以扩充。和事件,并加以扩充。 类的封装性类的封装性 :封装就是指将对象的方法程序:封装就是指将对象的方法程序和属性代码包装在一起。类的封装性指类的和属性代码包

12、装在一起。类的封装性指类的内部信息对于用户是屏蔽的,内部的复杂性内部信息对于用户是屏蔽的,内部的复杂性可以被隐藏起来,仅保留出封装的外部接口。可以被隐藏起来,仅保留出封装的外部接口。类的多态性:所谓类的多态性,指在类的层类的多态性:所谓类的多态性,指在类的层次结构中,各层中的对象对同名方法程序或次结构中,各层中的对象对同名方法程序或属性的调用是不同的,进而产生完全不同的属性的调用是不同的,进而产生完全不同的行为。行为。 8.4.2 用户定义类用户定义类用户也可以在已有基类的基础上,创建自己用户也可以在已有基类的基础上,创建自己的子类的子类用户定义类。用户定义类。建立用户定义类建立用户定义类创建

13、步骤:创建步骤: 步骤一:翻开步骤一:翻开“新建类对话框:新建类对话框:菜单【文件】菜单【文件】【新建】命令【新建】命令在在“新建新建对话框中,选择【类】,然后单击【新建文对话框中,选择【类】,然后单击【新建文件】按钮。件】按钮。 步骤二:在步骤二:在“新建类对话框中设定新建类新建类对话框中设定新建类的类名、父类和类库:的类名、父类和类库:步骤三:在步骤三:在“类设计器窗口中进行设置操类设计器窗口中进行设置操作:作:“类设计器窗口与类设计器窗口与“表单设计器窗口表单设计器窗口相同,在相同,在“属性窗口中可以查看和编辑类的属性窗口中可以查看和编辑类的属性,在属性,在“代码编辑窗口中可以编写各种事

14、代码编辑窗口中可以编写各种事件和方法程序的代码。件和方法程序的代码。 输入要创建的类名 指定新类从哪个类派生出来的。可以从列表框中选择系统给出的基类。 用于输入新类库名或指定已有库类的名字。 例例 新建一个带新建一个带“退出按钮的用户定义类,它继承命令按退出按钮的用户定义类,它继承命令按钮钮CommandButton基类,类名为基类,类名为“退出退出”,存于新类库,存于新类库名名mylib.vcx中。中。 步骤一:翻开步骤一:翻开“新建类对话框:在命令窗口中使用命令:新建类对话框:在命令窗口中使用命令:CREATE CLASS步骤二:设置步骤二:设置“新建类对话框:在新建类对话框:在“类名文本

15、框中输入退类名文本框中输入退出,在出,在“派生于下拉列表中选择派生于下拉列表中选择CommandButton作为基作为基类,在类,在“存储于文本框中输入存储于文本框中输入mylib.vcx。步骤三:设置步骤三:设置“退出类属性与事件:在退出类属性与事件:在“类设计器中,设类设计器中,设置退出类的置退出类的Caption属性值由属性值由“Command1改为改为“退出退出”,然后再双击这个然后再双击这个“退出按钮,打开代码输入窗口,为退出按钮,打开代码输入窗口,为Click事件编写如下代码:事件编写如下代码:THISFORM.Release使用用户定义类使用用户定义类在表单设计中,若要使用用户定

16、义类,可以通过表在表单设计中,若要使用用户定义类,可以通过表单控件工具栏的单控件工具栏的“查看类按钮,将用户定义类添加查看类按钮,将用户定义类添加到表单控件工具栏中供用户使用。到表单控件工具栏中供用户使用。 例例 新建一个表单,为表单添加一个在上例中定义新建一个表单,为表单添加一个在上例中定义的的“退出类按钮,表单以退出类按钮,表单以xjlan.scx存盘。存盘。 步骤一:新建一个表单。步骤一:新建一个表单。步骤二:将用户定义类添加到表单控件工具栏。步骤二:将用户定义类添加到表单控件工具栏。步骤三:使用用户定义类。步骤三:使用用户定义类。步骤四:保存并运行表单步骤四:保存并运行表单xjlan.

17、scx。修改用户定义类修改用户定义类 在建立完成用户定义类之后,还可以对其进行修改,在建立完成用户定义类之后,还可以对其进行修改,设置新属性值,编写新的事件代码或方法程序。对设置新属性值,编写新的事件代码或方法程序。对类的修改将影响所有的子类和基于这个类的所有对类的修改将影响所有的子类和基于这个类的所有对象,所有的子类和这个类的所有对象都将继承修改。象,所有的子类和这个类的所有对象都将继承修改。 例例 修正修正 “退出类属性和方法程序,将类属性退出类属性和方法程序,将类属性FontName设置为设置为“隶书隶书”,FontSize设置为设置为16,将,将Click事件代码修改成有确定功能的过程

18、代码。事件代码修改成有确定功能的过程代码。步骤一:翻开步骤一:翻开“退出类,进入退出类,进入“类设计器窗口。类设计器窗口。步骤二:修改类属性值步骤二:修改类属性值步骤三:修正步骤三:修正“Click事件的代码:事件的代码: IF MESSAGEBOX(“请确认是否要退出系请确认是否要退出系统?统?”,4+16+0,”确认窗口确认窗口”)=6THISFORM.ReleaseENDIF步骤四:封锁步骤四:封锁“类设计器窗口,保存类的修改操类设计器窗口,保存类的修改操作。作。 运行上例的表单xjlan.scx,可以发现表单的按钮对象的字体和大小已经改变,单击【退出】按钮,也会弹出“确认窗口。 8.5 建立工具栏建立工具栏用户定义工具栏是一种用户定义类,它是一种特殊表单,它必须在表单集中创

温馨提示

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

评论

0/150

提交评论