清华大学:《Visual foxpro6 及其应用系统开发》第8章 表单高级设计

清华大学出版社 TSINGHUA UNIVERSITY PRESS 第8章表单高级设计
第8章 表单高级设计

清华大学出版社 TSINGHUA UNIVERSITY PRESS 81多表单应用程序 应用程序界面 单文档界面与多文档界面 顶层表单与子表单 非浮动表单和浮动表单 调用子表单: DO FORM命令 表单属性 属性值 功能 ShowWindow o 本表单作为VFP主窗口的子表单 本表单作为顶层表单的子表单 本表单作为顶层表单显示在桌面上 Desktop TF 子表单浮动 子表单不浮动 Visible T.(默认)表单是可见 表单不可见
应用程序界面 单文档界面与多文档界面 顶层表单与子表单 非浮动表单和浮动表单 调用子表单:DO FORM命令 表单属性 属性值 功能 ShowWindow 0 本表单作为VFP主窗口的子表单 1 本表单作为顶层表单的子表单 2 本表单作为顶层表单显示在桌面上 Desktop .T. 子表单浮动 .F. 子表单不浮动 Visible .T. (默认) 表单是可见 .F. 表单不可见 8.1 多表单应用程序

清华大学出版社 TSINGHUA UNIVERSITY PRESS [例8-1]为例7-10设计的表单增加一个查页命令按钮,要求单击它能 打开一个供用户输入记录号的窗口,如图8.1所示。当指定记录号并单击 确定按钮后,新打开的窗口随即关闭,原表单也立即更新记录显示。 (1)从例7-10的表单文件SBXG.SCX复制出SBBD1.SCX,并将后者打开 (2)在SBBD1.SCX的表单窗口Form1中增加命令按钮 Command1 (3)创建表单文件SBBD2.SCX,并在其表单窗口Form1中创建标签、文本框各1个 (4)属性设置:见表8.1。 第1页 名称 启用日期:0305/990 部门:21 价格 6204461 是否主要设备 从光华仪表厂用 两标: 请输入记录号:「1 确定 下页」上页」退出查页 图8.1开出子窗口来指定记录
[例8-1] 为例7-10设计的表单增加一个查页命令按钮,要求单击它能 打开一个供用户输入记录号的窗口, 如图8.1所示。当指定记录号并单击 确定按钮后,新打开的窗口随即关闭,原表单也立即更新记录显示。 (1) 从例7-10的表单文件SBXG.SCX复制出SBBD1.SCX,并将后者打开。 (2) 在SBBD1.SCX的表单窗口Form1中增加命令按钮Command1。 (3) 创建表单文件SBBD2.SCX,并在其表单窗口Form1中创建标签、文本框各1个。 (4) 属性设置:见表8.1。 图8.1 开出子窗口来指定记录

清华大学出版社 TSINGHUA UNIVERSITY PRESS (5)在 Forml(SBD1.SCX)的Init事件代码中增加公共变量jh: PUBLIC yh, mc(10, 1), jlh &&公共变量jh用来表示记录号 COPY T0 aRRAY mC Fields sb.名称&&保持原样 &保持原样 (6) Forml(SBBD.SCX)中 Command1的 Click事件代码编写如下: DO FORM sbbd2 &&调用子表单 Go jIh &记录指针指向在子表单中指定的记录 THISFORM. Refresh &&父表单更新 (7) Forml(SBD2.SCX)中 Commandl的 Click事件代码编写如下: jh= THISFORM. TextI. Value&文本框值赋给公共变量(可事先在文本框中键入一个数) THISFORM. Release &&释放Form1(SBBD2.SCX) (8) Forml(SBBD1SCX)的 UNload事件代码编写如下: release ilh &&清除公共变量jh,程序运行结束公共变量不会自动清除 表81“查页”属性设置 表单文件对象属性 属性值 说明 SBBD1. SCX Form1 ShowWindow 本表单作为顶层表单显示在桌面上 Command1 Caption 查页 SBBD2. SCX Form1 Caption 输入 ShowWindow 1 本表单作为顶层表单的子表单 Labell Caption 请输入记录号 Text1 Value 供键入记录号,设置初值1 Command1 Caption 确定
(5) 在Form1(SBBD1.SCX)的Init事件代码中增加公共变量jlh: PUBLIC yh,mc(10,1),jlh && 公共变量jlh用来表示记录号 COPY TO ARRAY mc FIELDS sb.名称 && 保持原样 GO 1 && 保持原样 (6) Form1(SBBD1.SCX)中Command1的Click事件代码编写如下: DO FORM sbbd2 && 调用子表单 GO jlh && 记录指针指向在子表单中指定的记录 THISFORM.Refresh && 父表单更新 (7) Form1(SBBD2.SCX)中Command1的Click事件代码编写如下: jlh=THISFORM.Text1.Value && 文本框值赋给公共变量(可事先在文本框中键入一个数) THISFORM.Release && 释放Form1(SBBD2.SCX) (8) Form1(SBBD1.SCX)的Unload事件代码编写如下: RELEASE jlh && 清除公共变量jlh,程序运行结束公共变量不会自动清除 表单文件 对 象 属 性 属性值 说 明 SBBD1.SCX Form1 ShowWindow 2 本表单作为顶层表单显示在桌面上 Command1 Caption 查页 SBBD2.SCX Form1 Caption 输入 ShowWindow 1 本表单作为顶层表单的子表单 Label1 Caption 请输入记录号: Text1 Value 1 供键入记录号,设置初值1 Command1 Caption 确定 表8.1 “查页”属性设置

学出版社 表单集 TSINGHUA UNIVERSITY PRESS 使用表单集的优点 表单集的创建与删除 表单集的编辑 例8-3]用表单集来实现查看设备大修情况。 (1)从例7-13产生的表单文件BG.SCK复制出 BDJ SCX,并使后者打开,表单设计器窗口中将会显示“SB表编辑” 表单窗口。 (2)为表单文件 BDJ SCX创建表单集:选定表单菜单的创建表单集命令。 (3)向表单集添加表单:选定表单菜单的添加新表单命令,表单设计器窗口中就会出现Form2表单窗口 4)在数据环境中添加D表,并将SB表与D表按编号关联起来。 5)将数据环境中D窗口的标题栏拖放到Form2表单窗口,该表单中就会产生一个关于大修的表格。 (6)将Fomm2表单的 Caption属性值改为“大修情况”。 编号名称主要设备口 016-2车床 □偏号年月费用 037-2950662044 7-2磨床 01微机 P1n-1新本 图83查看设备大修情况
表单集 使用表单集的优点 表单集的创建与删除 表单集的编辑 [例8-3] 用表单集来实现查看设备大修情况。 (1) 从例7-13产生的表单文件BG.SCX复制出BDJ.SCX,并使后者打开,表单设计器窗口中将会显示“SB表编辑” 表单窗口。 (2) 为表单文件BDJ.SCX创建表单集:选定表单菜单的创建表单集命令。 (3) 向表单集添加表单:选定表单菜单的添加新表单命令,表单设计器窗口中就会出现Form2表单窗口。 (4) 在数据环境中添加DX表, 并将SB表与DX表按编号关联起来。 (5) 将数据环境中DX窗口的标题栏拖放到Form2表单窗口,该表单中就会产生一个关于大修的表格。 (6) 将Form2表单的Caption属性值改为“大修情况”。 图8.3 查看设备大修情况

清华大学出版社 8.2用户定义属性与方法程序 用户定义属性 变量属性 创建:打开表单设计器后,选定表单菜单的新建属性 作用域:对表单集中的所有表单都有效 引用格式: THISFORMSET.变量属性名 数组属性 多表单应用程序的有效参数 用 PUBLIC设置的公共变量 用户在表单集中自定义的属性 父表单与子表单间的参数传递: DO FORM…WITH…T0命令 用户定义方法程序 创建:表单菜单中选定“新建方法程序”命令 过程代码的编辑 调用基本格式为: THISFORMSET.方法程序名
8.2 用户定义属性与方法程序 用户定义属性 变量属性 创建:打开表单设计器后,选定表单菜单的新建属性 作用域:对表单集中的所有表单都有效 引用格式:THISFORMSET.变量属性名 数组属性 多表单应用程序的有效参数 用PUBLIC设置的公共变量 用户在表单集中自定义的属性 父表单与子表单间的参数传递:DO FORM … WITH …TO命令 用户定义方法程序 创建:表单菜单中选定“新建方法程序”命令 过程代码的编辑 调用基本格式为:THISFORMSET.方法程序名

清华大学出版社 TSINGHUA UNIVERSITY PRESS 83类 类的概念 类( class)与对象( object) 基类( base class) 子类( subclass) 用户定义类( user-defined class) 容器类( container classes)和控件类( control classes 类库( class library) 类的特征 封装特征 子类特征 继承性特征 用户定义类 类的创建 将类添加到工具栏 类的编辑
8.3 类 类的概念 类(class)与对象(object) 基类(base class) 子类(subclass) 用户定义类(user-defined class) 容器类(container classes)和控件类(control classes) 类库(class library) 类的特征 封装特征 子类特征 继承性特征 用户定义类 类的创建 将类添加到工具栏 类的编辑

清华大学出版 [例8-7创建一个带有确认功能的《“退由按钮”类 (1)从 CommandBut ton基类新建子类:选定文件菜单的新建命令□在新建对话框中选定“类”选项 按钮,然后选定新建文件按钮在如图8.7所示新建类对话框的类名文本框中键入类名:退出按钮;在 派生于”下拉列表框中选定基类 CommandButton;在“存储于”文本框中键入类库的名字:用户控件 ¤选定确定按钮关闭对话框 (2)在类设计器中为“退出按钮”类设置属性与事件:新建类对话框关闭后,随即会弹出一个类设 计器窗口(参阅图8.8)。类设计器窗口内显示一个“退出按钮”窗口,这就是“退出按钮”类;“退出 按钮”窗口中有一个“ Command1”按钮(在图8.8中 Commandl已改作退出两个字),这是类的实例的模样。 在属性窗口中将“退出按钮”类的 Caption属性由 Command改为“退出”,这将使按钮上显示“退出” 两个字(见图8.8)。 双击“退出按钮”窗口内部来打开代码窗口,然后为 Click事件键入如下代码: IF MESSAGEBOX("一定要退出吗?”,4+48,“"请确认")=6 &&信息框包含“是”和“否”按钮,图标显示惊叹号,按“是”按钮返回数值6 THISFORM. Release CLEAR EVENTS&&停止处理事件(参阅10.1节第三点) ENDIF (3)关闭类设计器窗口。 类名 生于田) dUtton 来游于 存储于):用户控 图8.7新建类对话框
[例8-7] 创建一个带有确认功能的“退出按钮”类。 (1) 从CommandButton基类新建子类:选定文件菜单的新建命令 在新建对话框中选定“类”选项 按钮,然后选定新建文件按钮 在如图8.7所示新建类对话框的类名文本框中键入类名:退出按钮;在 “派生于”下拉列表框中选定基类CommandButton;在“存储于”文本框中键入类库的名字:用户控件 选定确定按钮关闭对话框。 (2) 在类设计器中为“退出按钮”类设置属性与事件: 新建类对话框关闭后,随即会弹出一个类设 计器窗口(参阅图8.8)。类设计器窗口内显示一个“退出按钮” 窗口,这就是“退出按钮”类;“退出 按钮” 窗口中有一个“Command1”按钮(在图8.8中Command1已改作退出两个字),这是类的实例的模样。 在属性窗口中将“退出按钮” 类的Caption 属性由Command1改为“退出”,这将使按钮上显示“退出” 两个字(见图8.8)。 双击“退出按钮”窗口内部来打开代码窗口,然后为Click事件键入如下代码: IF MESSAGEBOX("一定要退出吗?",4+48,"请确认")=6 && 信息框包含“是”和“否”按钮,图标显示惊叹号,按“是”按钮返回数值6 THISFORM.Release CLEAR EVENTS && 停止处理事件(参阅10.1节第三点) ENDIF (3) 关闭类设计器窗口。 图8.7 新建类对话框

清华大学出版社 TSINGHUA UNIVERSITY PRESS 巴屈性一用户签件x出教钮回 类设计器-用户控件vexO出按钮) 退出按钮 □退出按钮 退出 全部|数据方法程序布局其他 x田 「 AddProperty[默认过程 Autosize 假认值 BaseClass Comm andbutton Cancel F.-假默认值 退出按钮C1ck Caption 对象B) 退出按钮 过程 lass 出安 ClassLibrary c:|Vx芦件vcx IF MESSAGI(一定要退出吗?“,4+48,“请确认")=6 C1 i ck Event默认过程] THISFORM. Release CLEAR EVENTS ENDIF 指定对象标题文本。 图88类设计器
图8.8 类设计器

清华大学出版社 TSINGHUA UNIVERSITY PRESS 例8-8]试将例8-7创建的“退出按钮”类添加到表单控件工具栏中。 打开任一表单(参阅图8.10)—一选定表单控件工具栏的查看类按钮一一在弹 出菜单中选定添加命令一一在如图8.9所示的打开对话框列表中选定可视类库文 件:用户控件.VCX一一选定确定按钮关闭对话框,表单控件工具栏中就会包含一 个“退出按钮”。 打开 搜索①):「v 表单设计器-文档1区 □Data 口dbf mEnu Form1口区 口 Forms 表单控件 Graphi □Help 新建文件夹 口 Include 画用尸控件vCX 大谶回回 文件名:用尸控件x 文件类型():同视类库(vex) Activex控件 厂以只读方式打开0B 帮助 √用户控件 厂独占吧 图810表单控件工具栏右端的按钮就是 图89选定一个“可视类库”文 退出按钮”类 件
[例8-8] 试将例8-7创建的“退出按钮”类添加到表单控件工具栏中。 打开任一表单(参阅图8.10)——选定表单控件工具栏的查看类按钮——在弹 出菜单中选定添加命令——在如图8.9所示的打开对话框列表中选定可视类库文 件:用户控件.VCX——选定确定按钮关闭对话框,表单控件工具栏中就会包含一 个“退出按钮”。 图8.9 选定一个“可视类库”文 件 图8.10 表单控件工具栏右端的按钮就是 退出按钮”类
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 清华大学:《Visual foxpro6 及其应用系统开发》第7章 表单控件设计.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第6章 表单设计基础.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第5章 菜单设计.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第4章 程序设计初步.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第3章 查询与统计.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第2章 表的基本操作.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第1章 绪论.ppt
- 天津农学院:《C语言》课程教学资源(教程讲义)第十三章 文件.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第十二章 位运算.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第十一章 结构体与共用体.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第十章 指针.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第九章 预处理命令.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第八章 函数.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第七章 数组.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第六章 循环控制.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第五章 分支结构程序.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第四章 最简单的C程序设计—顺序程序设计.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第三章 数据类型、运算符与表达式.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第二章 程序的灵魂—算法.doc
- 天津农学院:《C语言》课程教学资源(教程讲义)第一章 C语言概述(靳润昭).doc
- 清华大学:《Visual foxpro6 及其应用系统开发》第9章 报表设计.ppt
- 清华大学:《Visual foxpro6 及其应用系统开发》第10章 系统开发实例.ppt
- 《程序设计教程》教学资源(PPT讲稿)第10章 动态链接库开发.ppt
- 《程序设计教程》教学资源(PPT讲稿)第11章 数据库应用程序开发基础.ppt
- 《程序设计教程》教学资源(PPT讲稿)第12章 Borland数据提供者.ppt
- 《程序设计教程》教学资源(PPT讲稿)第13章 数据库应用程序开发.ppt
- 《程序设计教程》教学资源(PPT讲稿)第14章 创建ASP .NET应用程序.ppt
- 《程序设计教程》教学资源(PPT讲稿)第15章 ASP .NET Web服务.ppt
- 《程序设计教程》教学资源(PPT讲稿)第16章 Internet编程.ppt
- 《程序设计教程》教学资源(PPT讲稿)第17章 开发自定义组件.ppt
- 《程序设计教程》教学资源(PPT讲稿)第18章 异常处理与程序调试.ppt
- 《程序设计教程》教学资源(PPT讲稿)第1章 认识Delphi 2005.ppt
- 《程序设计教程》教学资源(PPT讲稿)第2章 .NET Framework概况.ppt
- 《程序设计教程》教学资源(PPT讲稿)第3章 Delphi语言基础.ppt
- 《程序设计教程》教学资源(PPT讲稿)第4章 Object Pascal的高级技术.ppt
- 《程序设计教程》教学资源(PPT讲稿)第5章 在Delphi 2005中使用窗体.ppt
- 《程序设计教程》教学资源(PPT讲稿)第6章 Windows窗体应用程序.ppt
- 《程序设计教程》教学资源(PPT讲稿)第7章 VCL窗体应用程序.ppt
- 《程序设计教程》教学资源(PPT讲稿)第8章 多媒体编程.ppt
- 《程序设计教程》教学资源(PPT讲稿)第9章 文件管理与配置注册表.ppt