Visual FoxPro 8.0实用教程_第10章_表单的创建和应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图 10.30 添加两个按钮
3.使用扩展类的步骤如下: (1)创建新表单。 (2)在“表单控件”工具栏中单击“查看类”按钮,从其快捷菜 单中选择“添加”命令,在“打开”对话框中选择自建的类 库文件,例如“myClass.vcx”。 (3)打开自己的类库文件后,“表单控件”工具栏中将显示自己 已经创建的控件类,如图10.31所示。 (4)选择“mycmdset”,在表单中单击左键添加自定义的命令按 钮组。
图 10.29 另存为类对话框
2.修改自定义的扩展类 (1)在项目管理器中选择“类”选项卡,其中可以看见自定义的 类库“myClass”及其列表项,双击要修改的对象,或者单击 “修改”按钮,进入“类设计器”中。 (2)在“类设计器”中首先删除“cmdset”对象的“Init”和 “Refresh”代码。 (3)选中“cmdset”对象,把“ButtonCount”属性设为“10”,调 整控件布局,将两个新增按钮的“name”属性分别设为 “cmdFind”和“cmdPrint”,“Caption”属性分别设为“查 找(\<F)”和“打印(\<P)”,并调整大小与“cmdAdd”按钮一 样。完成后如图10.30所示。 (4)保存当前类。
创建自己的扩展类
在“系部信息管理”表单中,我们设计了自己的控制按钮组, 这种按钮组是一种通用控制对象,在很多数据表单中都可能用 到,所以我们可以考虑将其创建为自己的扩展类,以在其他单 中使用。
1.具体创建类的步骤如下: (1)在表单设计器中打开“系部信息管理”表单,选中“命令按 钮组”。 (2)从“文件”菜单下选择“另存为类”命令,打开“另存为类” 对话框,在其中输入“类名”、“类库”文件名和“说明”信 息,并在“保存”选项中选择“选定控件”(如图10.29所示), 然后单击“确定”按钮。
数据库技术及应用
教材:《Visual FoxPro 8.0实用教程》 谢维成 陈永强 郑海春 编著 清华大学出版社
第10章 表单的创建和应用
10.1 表单中类和容器的层次关系
10.2 表单设计器及其应用
10.3 表单中常用对象、属性、事件和方法 10.4 为应用程序创建欢迎界面 10.5 为应用程序创建课程信息管理界面 10.6 为应用程序创建系部信息管理界面 10.7 为应用程序创建专业信息管理界面 10.8 为应用程序创建学生信息管理表单 10.9 为应用程序创建学生成绩登记表单
2.使用WITH„ENDWITH语法结构设置一个对象的多 个属性。 【例如】同样设置文本框的上述4个属性,可以使 用如下语句: WITH This.Text1 Enabled = .T. Value = DATE() ForeColor = RGB(0,0,0) BackColor = RGB(128,128,128) ENDWITH
在表单中设置对象属性
格式: Container.Object.Property=Value(容器.对象.属性=值) 使用代码设置对象属性一般可分为三种情况。 1.一条语句设置一个对象的一个属性。 【例如】在图10.1所示结构的表单事件中设置文本框Text1的相 关属性: This.Text1.Enabled = .T. && 控件有效 This.Text1.Value = DATE() && 显示当前日期 This.Text1.ForeColor = RGB(0,0,0) && 黑色文本 This.Text1.BackColor = RGB(128,128,128)&& 灰色背 景
10.4 为应用程序创建欢迎界面
在了解VFP8面向对象编程的相关基础知识后,从这节开始, 我们将以“学生学籍管理系统”为例创建几个具体的应用程 序表单。本节主要创建“欢迎界面”。
在项目中添加“欢迎”表单 修改“欢迎”界面
10.5 为应用程序创建课程信息管理界面
“课程信息管理”表单的主要作用是管理课程信息,该表单应 该具有“浏览”、“添加”、“修改”和“删除”课程信息 等的基本功能。
使用表单向导创建课程信息管理表单
图 10.26 新建的课程信息管理表单
运行课程信息管理表单
修改课程信息管理表单
1.表单的不足 •不具有课程索引自动赋值功能。 •没有提供课程名称的唯一性检查。 •在删除记录时,只是给当前记录添加了删除标记而没有真正 删除。 •所有操作提示都是VFP统一提供的,不能满足用户的个性化需 求。 2.改进方法 要改进上述的不足,需要通过重新编写控件的事件代码来更新 系统默认的事件代码。即主要修改“课程信息管理”表单中 “cmdAdd”按钮和“cmdEdit”按钮的“Click”事件代码。由于 表单中的对象都是由派生类创建的,用户为对象的相关事件新 添加程序代码将替代原派生类中定义的代码。
图 10.31 自己的控件类
10.7 为应用程序创建专业信息管理界面
“专业信息管理”表单的主要作用是管理专业的基本信息。注 意,专业隶属于系部,专业所属系部只能从系部表已有的记 录中选取。该表单应该具有“显示”、“添加”、“修改” 和“删除”专业信
图 10.32 新建的专业信息管理表单
在表单中响应对象的事件 当用户的操作(鼠标动作或按键)激发了对 象的某个事件,该事件中的过程代码将被执行。例 如,当用户单击命令按钮时,命令按钮的Click事件 过程代码将被执行。 事件中的过程代码也可以在程序运行时由程 序调用而激活,这时事件代码就如同一般过程一样。 【例如】我们需要在关闭表单Form1前自动执行命令 按钮Command1的Click事件,我们可以在表单的卸载 事件Destory中输入如下语句: mand1.Click()
3.使用容器对象的SETALL方法设置容器中所有对象的 同一属性。 【例如】为了把表格控件中列对象的BackColor属性设 置为红色,可以使用下列语句: Form1.Grid1.SetAll (“BackColor”, RGB(255, 0, 0 ) , ”Column”)
在表单中调用对象的方法程序
标签(Label)
文本框(TextBox)
命令按钮(CommandButton)
命令按钮组(CommandGroup)
编辑框(EditBox)
复选框(CheckBox)
选项组(OptionGroup)
列表框(ListBox)
组合框(ComboBox)
表格(Grid)
页框(PageFrame)
图像(Iamge)
10.6 为应用程序创建系部信息管理界面
“系部信息管理”表单的主要作用是管理学校中系部的基本信 息。该表单同样应该具有“浏览”、“添加”、“修改”和 “删除”系部信息等功能。
不使用表单向导创建系部信息管理表单
图 10.28 系部信息管理表单布局
测试系部信息管理表单
测试步骤如下: (1) 运行系部信息管理表单。 (2) 测试浏览功能。 (3) 测试编辑功能。 (4) 测试添加功能。 (5) 测试删除功能 (6) 退出当前表单。
在VFP中对象一经创建,用户便可以在应用程序的任何一 个地方调用这个对象的方法。调用对象方法的语法格式如下: Parent.Object.Method 【例如】下列语句调用方法程序来显示表单,并将焦点设 置在文本框上: ThisFormSet.Form1.Show ThisFormSet.Form1.Text1.SetFocus 如果用户调用的方法程序含有参数,那么所需传递给方法 程序的参数必须放在方法程序名后面的圆括号中。例如, Form1.Show(nStyle),将参数nStyle传递给Form1的Show方 法程序代码。
10.2 表单设计器及其应用
启动表单设计器
图 10.2 表单设计器
常用工具栏
1.表单设计器工具栏
2.表单控件工具栏
3.布局工具栏
常用对话框
1.属性窗口
图 10.3 属性窗口
2.代码编辑器
图 10.4 代码编辑器
3.数据环境设计器 每一表单或表单集都包括一个数据环境。数据环境是一 个对象,它包含与表单相互作用的表或视图,以及表单所要求 的表之间的关系。可以在“数据环境设计器”中直观地设置数 据环境,并与表单一起保存。 在表单运行时数据环境可自动打开、关闭表和视图。而 且,通过设置“属性”窗口中的ControlSource 属性设置框, 在这个属性框中列出数据环境的所有字段,数据环境将帮助你 设置控件的ControlSource 属性。
修改专业信息管理表单
图 10.33 专业信息管理表单
10.8 为应用程序创建学生信息管理表单
“学生信息管理”表单用于管理学生的相关信息,应该具有 “浏览”、“查找”、“添加”、“编辑”和“删除”等基本 功能。
设计中的问题说明
10.10 应用程序主窗口的设置简介
10.11 习题
10.1 表单中类和容器的层次关系
在表单分层结构中引用对象
图10.1 表单嵌套关系示意
绝对引用 从最高容器开始逐层向下直到某个对象为止的引用称绝对 引用。 【例如】在图10.1所示的容器嵌套关系中对象的绝对引用格式: 引用文本框Text1格式为: FormSet.Form1.Text1 引用选项组中的Option1格式为: FormSet.Form1.Optiongroup1.Option1 引用组合框Combo1格式为: bo1
对象所在的表单 当前对象所在的表单集
【例如】在图10.1所示的表单嵌套关系中对象的相对引用格式如下: 在FormSet的事件中引用对象Text1和Combo1,格式分别为: This.Form1.Text1 bo1 在Form1的事件中引用对象Text1和Combo1,格式分别为: This.Text1 bo1 在Text1或者Combo1的事件中引用自身,格式为: This 在Text1和Combo1的事件中引用Form1,格式分别为: ThisForm 或 This.Parent ThisForm 或 This.Parent.Parent 在Text1和Combo1的事件中引用FormSet,格式分别为: ThisFormSet 或 ThisForm.Parent 或 This.Parent.Parent ThisFormSet 或 ThisForm.Parent 或 This.Parent.Parent.Parent 在Text1的事件中引用Combo1,格式为: bo1 或者为 bo1 在Combo1的事件中引用Text1,格式为: This.Parent.Parent.Parent.Text1 或者为 ThisForm.Text1
相对引用 从当前对象出发,通过逐层向高一层或低一层直到另一对象 的引用称为相对引用。表10.1列出了在表单嵌套关系的相对引 用中常用到的属性或关键字。 表 10.1 表单嵌套中的对象引用属性或关键字
属性或关键字 说明
Parent This
ThisForm ThisFormSet
当前对象的直接容器对象 当前对象
首次创建自己的表单
1.创建一个单窗口表单 2.创建多窗口表单集
10.3 表单中常用对象、属性、事件和方法
对象的公共属性、事件和方法
1.常用公共属性 2.常用的公共事件 3.常用的公共方法
表单(Form)
1.表单的常用属性:AlwaysOnTop、AutoCenter、Closable、 DataSession、Icon、 MaxButton、MinButton、Movable、 Scrollbars、WindowState、WindowType 2.表单的常用方法:Release 、Refresh 、Show 、Hide 3.表单的常用事件:Init 、Destroy 、RightClick