第六章表单设计及应用.docx
《第六章表单设计及应用.docx》由会员分享,可在线阅读,更多相关《第六章表单设计及应用.docx(43页珍藏版)》请在冰豆网上搜索。
![第六章表单设计及应用.docx](https://file1.bdocx.com/fileroot1/2023-7/24/7c5cf684-74f3-48a5-ad4c-0e670f07e2a4/7c5cf684-74f3-48a5-ad4c-0e670f07e2a41.gif)
第六章表单设计及应用
第六章表单设计与应用
大纲要求
使用表单设计器:
(1)在表单中加入和修改控件对象。
(2)设定数据环境。
知识要点
1.表单
表单(Form)就是一个输入或显示某种信息的界面(窗口),是VisualFoxPro提供的用于建立应用程序界面的工具之一。
被大量应用于人机交互界面的设计当中。
应用表单设计功能,可以设计出具有Windows风格的各种程序界面。
由于表单使用非常频繁,所以在VFP中,专门提供了一个表单设计器来设计表单程序。
表单是一个容器,除含有窗口的标准控件标题栏、控制按钮外,可以向表单中添加各种对象,如按钮、文本框、表格、图片等。
在表单设计器环境下可以进行添加、删除及布局控件的操作。
2.对象
对象(Object)是反映客观事物属性及行为特征的描述。
客观世界里的任何实体都可以被看作是对象。
对象可以是具体的物,也可以指某些概念。
从编程的角度来看,对象是一种将数据和操作过程结合在一起的数据结构,或者是一种具有属性(数据)和方法(过程和函数)的集合体。
事实上程序中的对象就是对客观世界中对象的一种抽象描述。
每个对象都具有描述其特征的属性,及附属于它的行为。
对象把事物的属性和行为封装在一起,是一个动态的概念。
对象是面向对象编程的基本元素,是“类”的具体实例。
(1)对象属性:
属性用来表示对象的状态。
(2)对象方法:
对象方法是描述对象行为的过程。
对象的属性特征标识了对象的物理性质,对象的行为特征描述了对象可执行的行为动作;对象的每一种属性,都是与其他对象加以区别的特性,都具有一定的含义,并赋予一定的值;对象大多数是可见的,也有一些特殊的对象是不可见的。
3.类
v类是对一类相似对象的性质描述,这些对象具有相同种类的属性以及方法就好比是一个摸板。
对象是类的一个实例。
v类的类型
子类和父类
v类的四大特征
§继承性——说明了子类延用父类特征的能力;
§多态性——指一些关联的类包含同名的方法程序,但方法程序的内容可以不同,具体调用在运行时根据对象的类确定;
§封装性——说明包含和隐藏对象信息,如内部数据结构和代码的能力;
§抽象性——指提取一个类或对象与众不同的特征,而不对该类的所有信息进行处理;
4.子类与继承
在面向对象的方法里,继承是指在基于现有的类创建新类时,新类继承了现有类里的方法和属性。
此外,可以为新类添加新的方法和属性。
我们把新类称为现有类的子类,而把现有类称为新类的父类。
一个子类的成员一般包括:
(1)从其父类继承的属性和方法。
(2)由子类自己定义的属性和方法。
5.基类
VisualFoxPro基类是系统本身内含的,并不存放在某个类库中。
用户可以基于基类生成所需要的对象,也可以扩展基类创建自己的子类。
VFP基类的种类:
下列表中列出了VFP的基类:
容器类
容器类对象
包容其他类的基类。
将容器类的对象无论在设计时还是在运行时,均可以将该容器类的对象作为一个整体进行操作,也可以分别对其包容的对象处理。
控件类
控件类可以包含在容器类中的基类。
控件类不能包含其它对象
类名o含义类名含义
ActiveDoc活动文档LABEL标签
Checkbox复选框LINE线条
Column(表格)列LISTBOX列表框
Combobox组合框OLECONTROLOLE容器控件
Commandbutton命令按钮OLEBOUNDCONTROLOLE绑定控件
Commandgroup命令按钮组OPTIONBUTTON选项按钮
Container容器OPTIONGROUP选项按钮组
Control控件PAGEFRAME页框
Custom定制PROJECTHOOK项目挂钩
Editbox编辑框SEPARATOR分隔符
Form表单SHAPE形状
Formset表单集SPINNER微调控件
Grid表格TEXTBOX文本框
Header列标头TIMER定时器
每个VFP基类都有自己的一套属性、方法和事件。
当扩展某个基类创建用户自定义类时,该类就是用户自定义类的父类,用户自定义类继承该基类中的属性、方法和事件。
表:
基类的最小属性集
在程序设计中,可以使用CREATEOBJECT函数来直接生成基于某个类的对象。
该函数的格式如下:
CREATEOBJECT(<类名>[,<参数1>,<参数2>,……])
函数基于指定的类生成一个对象,并返回对象的引用。
对象属性访问以及对象方法调用的基本格式如下:
<对象引用>.<对象属性>
<对象引用>.<对象方法>[(参数列表)]
【例】基于VisualFoxPro的FORM类生成一个对象,然后访问该对象的一些属性和方法。
Oform=CREATEOBJECT("Form")&&生成一个空白表单
Oform.show&&显示表单
Oform.caption=”演示”&&修改表单的标题
?
”这是一个生成对象的演示程序”&&在表单上输出字符串
Oform.release
例题
1.在VisualFoxPro中,表单是_______。
A.窗口界面B.一个表中各个记录的清单
C.数据库中各个表的清单D.数据库查询的列表
[解析]本题考查的知识点是表单的基本知识。
在VisualFoxPro中表单实际是一个窗口界面。
在VisualFoxPro中各种对话框、向导、设计器等窗口统称为表单。
选项B说法错误。
一个表中的各个记录的清单不能算是表单。
选项C错误,数据库中的表就是表,与表单不同。
选项D数据库查询的列表也不能算是表单。
[答案]A
2._____是面向对象程序设计中程序运行的最基本实体。
A.类
B.对象
C.方法
D.函数
Class
类名,该类属于何种类型,指当前对象基于那个类而生成。
BaseClass基类名,该类的基类,指当前类从那个VFP基类派生而来。
ClassLibray类库名,类库文件,指当前类存放在那个类库中。
ParentClass父类名,该类的父类,指当前类从那个类直接派生而来。
[解析]本题考查的知识点是面向对象程序设计的基本知识。
在VisualFoxPro中,面向对象的程序设计以对象及数据结构为中心。
因此对象是面向对象程序设计中程序运行的最基本实体。
[答案]B
3.对象的______是指对象可以执行的动作或它的行为。
A.方法B.属性C.事件D.控件
[解析]本题考查的知识点是对象的基本知识。
在VisualFoxPro中,每个对象都有自己的属性和方法,也可以对一个被称为事件的动作进行识别和响应。
对象的属性一般用各种类型的数据来表示。
对象的方法是指对象可以执行的动作或它的行为。
掌握这这些知识,便很容易选择选项A正确。
选项D错误,没有“对象的控件”。
[答案]A
6.容器和控件
VisualFoxPro中的类一般可分为两种类型:
容器类和控件类。
相应地,可分别生成容器(对象)和控件(对象)。
控件:
是一个可以以图形化的方式显示出来并能与用户进行交互的对象。
控件常被放置在一个容器里。
容器:
容器可以被认为是一种特殊的控件,它能包容其他的控件或容器控件是一个可以以图形化的方式显示出来,并能与用户进行交互的对象,
【例】如果Form1中有一个命令按钮组commandgroup1,该命令按钮组有两个命令按钮:
command1和command2,label1是表单form1上的一个标签控件。
如果要在命令按钮command1的事件(如单击事件)代码中修改该按钮的标题可用下列命令:
this.caption=”确定”
如果要在命令按钮command1的事件代码中修改命令按钮command2的标题可用下列命令:
thisform.Cmand2.caption="取消"
或者
mand2.caption="取消"
但不能写成下列命令:
mand2.caption="取消"
如果要在命令按钮command1的事件代码中修改表单的标题可用下列命令:
This.Parent.parent.Caption=”测试窗口”
或者
thisform.caption=”测试窗口”
表容器层次中的对象引用属性或关键字
属性或关键字引用
Parent当前对象的直接容器对象
This..ó
当前对象
ThisFormμ当前对象所在的表单
ThisFormSetμ±当前对象所在的表单集
7.事件
事件是一种由系统预先定义而由用户或系统发出的动作。
事件作用于对象,对象识别事件并作出相应反应
与方法集可以无限扩展不同,事件集是固定的,用户不能定义新的事件
1.关于VisualFoxPro基类的最小事件集Init的说明正确的是______
A.当对象产生时引发
B.当对象从内存中释放时引发
C.当方法或事件代码出现运行错误时引发
D.当用户用鼠标单击程序界面上的一个命令按钮时引发
[解析]本题考查的是关于事件的知识。
只要读者能很好地记住基本知识,就能得出正确答案A。
[答案]A
2.Init事件由______时引发。
A.对象从内存中释放B.事件代码出现错误
C.方法代码出现错误D.对象生成
[解析]本题考查的知识点是VisualFoxPro中的事件。
Init事件在对象生成时引发。
选项A错误,因为从内存中释放对象时引发的事件是Destroy。
选项B和C错误,因为Error事件是由事件或方法代码出错时引发。
[答案]D
3.在容器对象的嵌套层次中,事件的处理遵循独立性原则,即______。
A.每个对象识别并处理其他的属性
B.每个对象识别并处理属于自己的方法
Init创建对象时发生的事件。
从内存中释放对象时发生的事件。
鼠标左键单击对象时发生的事件。
Dbclick鼠标左键双击对象时发生的事件。
Error当方法或事件代码出现运行错误时引发。
鼠标右键单击对象时发生的事件。
Click
Rightclick
C.每个对象识别并处理属于自己的事件
D.每个对象识别并处理其他的事件
[解析]本题考查的知识点是事件的基本知识。
在容器对象的嵌套层次中,事件的处理遵循独立性原则,意思是指每个对象识别并处理属于自己的事件。
选项A错误,因为对象并不会处理其他的属性。
选项B错误,因为对象不是处理方法而是事件。
选项D错误,因为事件处理的独立性原则只处理并识别自己的事件,不是其他事件。
[答案]C
4.在VisualFoxPro中,当对象方法或事件代码在运行过程中产生错误时将引发______事件。
A.LoadB.Init
C.DestroyD.Error
[解析]本题考查的知识点是事件的应用。
在visualFoxPro中,当对象方法或事件代码在运行过程中产生错误时将引发Error事件。
选项A在表单对象建立之前引发,即运行表单时,先引发表单的Load事件,再引发表单的Init事件。
选项B在对象建立时引发。
选项C在对象释放时引发。
选项D当对象方法或事件代码在运行过程中产生错误时引发。
[答案]D
5.C1ick事件在______时引发。
A.用鼠标单击对象B.用鼠标双击对象
C.表单对象建立之前D.用鼠标右键单击对象
[解析]本题考查的知识点是事件的应用。
在VisualFoxPro中,当用鼠标单击对象时引发C1ick事件。
选项B用鼠标双击对象时引发DblClick事件。
选项C表单对象建立之前引发Unload。
选项D用鼠标右键单击对象时引发RightClick。
[答案]A
6.为表单Myform添加事件或方法代码,改变该表单中的控件Cmd1的Caption属
性的正确命令是______。
A.THISFORMSET.Cmd1.Caption=“最后一个”
B.Myform.Cmd1=“最后一个”
C.THISFORM.Cmd1.Caption=“最后一个”
D.THIS.Cmd1.Caption=“最后一个”
[解析]本题考查的知识点是指定方法和事件程序的操作。
在类定义中编写方法和事件程序代码时,不能直接引用表单或控件的名称,因为VisualFoxPro在根据类定义创建对象时,有它内部的表达式方式,不一定就是用户定义的名称。
因此在编写程序代码时要注意用THIS.(引用该对象),THISFORM.(引用包含该对象的表单),THIS.PARENT(引用该对象的直接容器),THISFORMSET.(引用包含该对象的表单集)这些关键字进行相对引用,它们利用快捷方式指明所要处理的对象。
选项A引用对象的表单集,不符合题目要求,因此错误。
选项B格式错误。
选项C正确。
选项D由于引用的是对象,因此错误。
[答案]C
8.建立表单
表单(Form)是VisualFoxPro提供的用于建立应用程序界面的最主要的工具之一。
表单相当于WINDOWS应用程序的窗口。
表单可以属于某个项目,也可以游离于任何项目之外,它是一个特殊的磁盘文件,其扩展名为.scx。
在项目管理器中创建的表单自动隶属于该项目。
创建表单一般有两种途径:
1、使用表单向导创建简易的数据表单;
2、使用表单设计器创建或修改任何形式的表单。
(1)使用表单向导
启动表单向导有以下四种途径:
1)打开“项目管理器”,选择“文档”选项卡,从中选择“表单”。
然后单击“新建”按钮。
在弹出的“新建表单”对话框中单击“表单向导”按钮。
2)在系统菜单中选择【文件】|【新建】命令,或者单击工具栏上的“新建”按钮,打开“新建”对话框,在文件类型栏中选择“表单”。
然后单击“向导”按钮。
3)在系统菜单中选择【工具】|【向导】|【表单】命令。
4)直接单击常用工具栏上的“表单向导”图标按钮。
按步骤依照“表单向导”完成单表表单或一对多表表单的设计
(2)使用表单设计器
启动表单设计器有多种方法:
●菜单方法:
若是新建表单,在系统菜单中选择【文件】|【新建】,在文件类型对话框中选择“表单”,单击“新建文件”按钮;若是修改表单,则单击【文件】|【打开】,在打开对话框中选择要修改的表单文件名,单击“打开”按钮。
●命令方法:
在COMMAND窗口输入如下命令:
CREATEFORM<文件名>&&创建新的表单
或
MODIFYFORM<文件名>&&打开一个已有的表单
●在项目管理器中,先选择文档标签,然后选择表单,单击新建按钮。
若是修改
表单,选择要修改的表单,单击“修改”按钮。
3)设计器窗口
“表单设计器”窗口内包含正在设计的表单。
用户可在表单窗口中可视化地添加和修改控件、改变控件布局,表单窗口只能在“表单设计器”窗口内移动。
以新建方式启动表单设计器时,系统将默认为用户创建一个空白表单,如图。
1.打开表单设计器窗口的命令是______。
A.CREATFORMB.CREATOBJECT
C.OPENFORMD.OPENOBJECT
[解析]本题考查的知识点是打开表单设计器的命令的应用。
在visualFoxPro中,打开表单设计器窗口的命令是CREATFORM。
选项B是打开表设计器的命令。
选项C和D语法错误。
[答案]A
2.下列在表单设计器中调用表单生成器的方法不正确的是______。
A.单击“表单”菜单中的”快速表单”命令
B.单击表单设计器工具栏上的“表单生成器”按钮
C.在表单设计器窗口上单击鼠标右键,在弹出的快捷菜单中选择“生成器”命令
D.单击“表单”菜单中的“表单生成器”命令
[解析]本题考查的知识点是打开表单生成器的方法。
在VisualFoxPro中,可以通过多种方法打开表单生成器:
①单击“表单”菜单中的“快速表单”命令。
②单击表单设计器工具栏上的“表单生成器”按钮。
③在表单设计器窗口上单击鼠标右键,在弹出的快捷菜单中选择“生成器”命令。
选项A,B,C操作方法都正确,只有选项D错误,因为“表单”菜单中没有“表单生成器”命令。
[答案]D
3.用DOFROM命令运行表单时,如果不加______子句,将会出错。
A.WITHB.WHERE
C.FORMD.WAIT
[解析]本题考查的知识点是DOFORM命令子句的应用。
在VisualFoxPro中,新添加属性newp的初使值为.F.,如果不先给它赋一个数值型数据,将无法进行加减运算。
所以在用DOFORM命令运行该表单时,如果不加WITH子句将会出错。
[答案]A
4.表单设计器启动后,VisualFoxPro主窗口上将出现______。
A.表单设计器和属性窗口
B.表单控件和表单设计工具栏
C.“表单”菜单
D.以上答案均正确
[解析]本题考查的知识点是启动表单设计器后窗口中同时出现哪些对象。
在VisualFoxPro中,打开表单设计器后,窗口中将同时出现表单设计器和属性窗口、表单控件和表单设计器工具栏、“表单”菜单,因此正确答案为D。
[答案]D
5.下面关于表单窗口的说法不正确的一项是______。
A.表单窗口包含在表单设计器窗口中
B.表单窗口可以在主窗口内任意移动
C.可以在表单窗口中可视化地添加和修改控件
D.表单窗口只能在表单设计器窗口中移动
[解析]本题考查的知识点是表单窗口的基本知识。
在VisualFoxPro中,表单窗口是包含在表单设计器窗口中的窗口,它只能在表单设计器窗口中移动。
在表单窗口中可以添加和修改控件。
选项C,D都正确,只有选项B错误,因为表单窗口只能在表单设计器窗口中移动,不可以在主窗口中移动。
[答案]B来源:
考试大-计算机二级考试
4)属性窗口
表单属性是描述表单特征的参数。
程序中的表单作为由它的父类派生的对象,继承了父类的所有属性及其值。
用户可以在设计阶段通过属性窗口修改,也可以在程序中通过程序代码修改表单属性的值。
设计表单的绝大多数工作都是在属性窗口中完成的,因此用户必须熟悉属性窗口的用法。
如果在表单设计器中没有出现属性窗口,可在系统菜单中单击【显示】|【属性】,属性窗口如图所示。
页框选项卡
右击表单页面,选“属性”选项,系统即弹出表单属性窗口,其窗口分以下五部分:
1.对象列表:
该下拉列表中以树形结构分层列出了当前表单及其所包含的对象的名称,单击下拉按钮,可以从中选择表单中的对象。
2.属性分类选项页:
这部分有5个小项目,分别如下:
①全部——按字母排序的对象的所有属性。
②数据——与对象数据有关的属性。
③方法程序——对象的事件触发程序和方法程序
④布局——控制对象外观的属性,如颜色等。
⑤其他——不属以上②、③、④各项的属性。
3.属性列表:
列出当前选项页的所有属性名及其取值。
单击属性列表中的某一项目,则选中该属性,称为当前属性。
4.属性值输入框:
用来输入或选择当前属性的值。
5.属性说明:
对当前属性的文字解释
可见,在表单设计器中设置属性值时,需要先在属性窗口的对象列表框中选择要修改的对象,再选择属性分类选项页,找到属性,最后在输入框输入新值。
(有时,属性值可以从属性列表选择或通过对话框选择)
表单的常用属性
±í表单背景色
BackColorRGB三色值
为真时,表单居中打开AutoCenter.T..F.
字串表单标题/窗口标题Caption
±íμ¥表单名,用于程序代码Name字串
取值作用
属性设置
控件属性的设置方法与表单属性相同,可以采用两种方法:
一是在属性窗口设置——先从对象列表中选择对象,再在下面的属性列表中选择要设置的属性,在窗口中间的属性值输入框中输入(或从下拉列表、用该文件作为表单背景
PictureBmp文件名
表单是否允许移动
Moveble.T..F.ˉ
表单的初始状态:
0:
普通;1:
最小化;2:
最大化0,1,2
Windowstate
Height,Width数值表单的高和宽
Left,Right数值表单左上角坐标
×作用
取值
对话框中选取);二是通过属性赋值语句完成,根据引用方式的不同,属性赋值命令的格式有绝对引用格式和相对引用格式两种,分别如下:
(1)绝对引用:
包含对象的各层容器名.对象名.属性名=值
(2)相对引用:
This.属性名=值
或:
Thisform.表单内包含对象的各层容器名.对象名.属性名=值
设置属性值也可以在程序代码中实现,例如:
Form1.BackColor=RGB(255,0,0)
THISFORM.Caption=“学生数据录入”
可分别设置表单的背景色和标题。
Thisform.Picture=“c:
\windows\setup.bmp”
可用来设置当前表单的背景。
5)表单控件工具栏
设计表单的主要任务就是利用“表单控件”设计交互式用户界面。
“表单控件”工具栏是表单设计的主要工具。
默认包含21个控件、4个辅助按钮,如图所示。
1.如果要为控件设置焦点,则控件的Enabled属性和____属性必须为.T.
A.ButtonsB.Cancel
C.DefaultD.Visible
[解析]本题考查的知识点是设置控制焦点的属性的使用。
在VisualFoxPro中,对象被指定,它就获得了焦点,焦点的标志可以是文本框的光标、命令按钮内的虚线框等。
如果要为控制设置焦点,其Enabled和V