第四讲 表单设计文档格式.docx
《第四讲 表单设计文档格式.docx》由会员分享,可在线阅读,更多相关《第四讲 表单设计文档格式.docx(33页珍藏版)》请在冰豆网上搜索。
BaseClass
该类由何种基类派生而来,例如Form、CommandGroup等
ClassLibrary
该类从属于哪种类库。
ParentClass
对象所基于的类。
若该类直接由VisualFoxPro基类派生而来,则ParentClass属性值与BaseClass属性值相同。
(2)对象的引用
绝对引用:
从容器的最高层引用对象,给出对象的绝对地址。
如:
form1.text1.value
相对引用:
在容器层次中相对于某个容器层次的引用。
thisform.text1.value
相对引用时所用的关键字
属性或关键字
引用
ActiveControl
当前活动表单中具有焦点的控件
ActiveForm
当前活动表单
ActivePage
当前活动表单中的活动页面
Parent
该对象的直接容器(父容器)
THIS
该对象本身
THISFORM
包含该对象所在的表单
THISFORMSET
包含该对象所在的表单集
_SCREEN
系统变量,表示屏幕对象
另外:
系统变量_SCREEN表示屏幕对象,与ActiveForm等组合可以在不知道表单名的情况下处理活动表单。
(3)事件与方法:
VFP中核心事件及其激发时间
触发时间
Load
当表单或表单集被加载时产生
Unload
当表单或表单集从内存中释放时产生
创建对象时产生
从内存中释放对象时产生
Click
用户在对象上单击鼠标时产生
DblClick
用户在对象上双击鼠标时产生
activate
当激活表单,表单集或页对象时产生
RightClick
用户在对象上单击鼠标右键时产生
GetFocus
对象得到焦点时产生
LostFocus
对象失去焦点时产生
KeyPress
用户按键时产生
InteractiveChange
以交互式改变对象值时产生
ProgrammaticChange
以编程方式改变对象值时产生
注意事件的触发时间:
init,load,activate,destroy发生的顺序
VFP6.0中的常用方法
名称
调用语法
功能
AddItem
Control.AddItem(cItem[,nIndex][,nColumn])
在组合框或列表框中添加一个新数据项,并且可以指定数据项索引。
Clear
Object.Clear
清除组合框或列表框控件中的内容
Hide
Object.Hide
通过把Visible属性设置为.F.,来隐藏表单、表单集或工具栏
Show
Object.Show
把Visible属性设置为.T.,显示并激活一个表单或表单集,并确定表单的显示模式
Refresh
Object.Refresh
重画表单或控件,并刷新所有值
Release
Object.Release
从内存中释放表单或表单集
setfocus
Control.SetFocus
为控件指定焦点。
事件循环
VFP6.0中用READEVENTS命令建立循环,用CLEAREVENTS命令终止循环。
2.重点与难点提示
(1)表单或其它容器控件的计数属性和集合属性
所有容器对象都具有与之相关的计数属性和集合属性,其中,计数属性表明该容器中包含对象数目,而集合属性是一个数组,可以用来引用包含在其中的对象。
表单中的ControlCount属性可以自动确定表单中究竟有多少个控件,而Controls(i)属性可以引用表单上指定的第I个控件。
容器控件中的ControlCount属性可以自动确定容器中究竟有多少个控件,而Controls(i)属性可以引用容器中的任何一个控件。
例如,将容器控件(container1)中所有控件的Enabled属性为.F.:
forI=1tothisform.Container1.ControlCount
thisform.Container1.Controls(i).Enabled=.f.
endfor
其它一些典型的容器类控件的计数属性和集合属性如表:
容器控件的计数和集合属性
控件
计数属性
集合属性
命令按钮组
ButtonCount:
命令按钮组中有多少个命令按钮
Buttons(i):
第I个命令按钮
选项按钮组
选项按钮组中有多少个选项按钮
第I个选项按钮
表格
ColumnCount:
表格中列对象的数目
Columns(i):
第I列
页框
PageCount:
表示有多少个页面
Pages(i):
第I个页面
表单
ControlCount:
表单中包含对象的数目
Controls(i):
第I个对象
表单集
FormCount:
表单集中的表单数
Forms(i):
第I个表单
(2)几个重要方法的调用说明
AddItem方法
功能:
在组合框或列表框中添加一个新的数据项,并且可以指定数据项的索引。
RemoveItem
从组合框或列表框中移去一项。
Clear方法
清除组合框或列表框中的数据项。
语法格式:
控件名.Clear
SetAll方法
为容器对象中的所有控件或某类控件指定一个属性设置。
应用于:
列、命令组、容器对象、表单、表单集、表格、选项组、页面、页框、_SCREEN、工具栏。
容器名.SetAll(cProperty,Value[,cClass])
参数说明:
cProperty:
要设置的属性。
Value:
属性的新值,Value的数据类型取决于要设置的属性。
cClass:
指定类名,该类为对象的基类。
This.setall(“dynamicforecolor”,”iif(cj.cj<
60,rgb(255,0,0),rgb(0,255,0))”,”column”)
This.column3.dynamicfontsize=”iif(cj.cj<
60,13,9)”
This.column3.dynamicforecolor=”iif(cj.cj<
60,rgb(255,0,0),rgb(0,255,0))”
SetFocus方法
为一个控件指定焦点,确定当前的操作对象。
对象名.SetFocus
(3)组合框和列表框的几个重要属性
组合框和列表框的几个与数据相关的属性很容易混淆,为帮助读者加深理解,现总结如下:
RowSource:
指定列表框和组合框控件中值的来源,在设计时使用。
RowSourceType:
指定列表框和组合框控件中值的来源类型,最常用的有6--字段和3—SQL,当其值为6--字段时,RowSource必须设置为某个字段;
当其值为3—SQL时,RowSource必须是一个SQL语句。
ControlSource:
指当选定列表框或组合框控件的某个值时,这个值将被保存在ControlSource属性所指的位置,所以可以理解为ControlSource是列表框或组合框的数据去向。
补充:
1.VFP中的(基)类分为两大类型:
容器类和控件类(也称为非容器类)
容器类:
是包含其他类的基类;
控件类:
是可以包含在容器类中的基类;
2.VFP中的基类有哪些:
容器,控件,表单集,表单,工具栏,命令按钮组,命令按钮,文本框,编辑框,微调框,表格,标头,列,页框,页面,组合框,列表框,复选框,选项按钮组,选项按钮,计时器,OLE绑定型控件,OLE容器控件,标签,图象,形状,线条,分隔符。
3.以上的基类中哪些属于容器类:
容器,工具栏,表单集,表单,表格,表格列,页框,页面,命令按钮组,选项按钮组。
其中标头,列,页面,选项按钮,分隔符属于容器类的集成部分,在类设计器中不能基于他们创建子类。
4.除去基类中的容器类就是控件类。
8.2控件
控件分为绑定型控件和非绑定型控件
1.标签:
用于保存不希望用户改动的文本,常用来为添加的控件写标题。
几个主要的属性:
Fontname(字体)
Fontsize(字号)
Fontbold(粗体)
Fontitalic(斜体)
Borderstyle(边框样式)
Backstyle(是否透明)
Autosize(自动调整大小)
Wordwrap(是否换行)
Caption(标签标题)
Name(标签名称)
Forecolor(字体颜色)
2文本框与编辑框:
(1)文本框:
可以通过其显示,输入或编辑保存在表中的非备注型字段的数据,框中一般是单行的文本。
有关的主要属性:
controlsource
指定与文本框绑定的数据源
Value
指定文本框的当前选定的值
Inputmask
指定控件中数据的输入格式和显示方式(X,9,A,)
Format
指定控件的VALUE属性的输入和输出格式(A,D,K,T,!
)
Passwordchar
指定其他字符来掩盖其输入的字符
Alignment
文本的对齐方式
Borderstyle
边框样式
Backstyle
是否透明
Specialeffect
是否具有三维格式
(2)编辑框:
与文本框类似,可以输入多行文本或编辑长字段或备注字段,允许自动换行并能用光标移动键,操作滚动条来浏览。
Controlsource
如果定为备注型,就可以利用编辑框显示或编辑备注型字段。
Scrollbars
决定编辑框是否有垂直的滚动条
Name
编辑框的名称
3命令按纽和命令按纽组
Caption:
命令按纽标题文本,注意访问键的添加。
Picture:
命令按纽上图形(图形按钮,文本按钮)
Name:
命令按纽名字
Downpicture:
命令按纽被选中时的图形
Enabled:
命令按纽是否可用(有效)
Default:
指定按下ENTER键时,哪个按纽响应。
Cancel:
指定该按纽是否为取消按纽
Visible:
指定该按纽是否可见
Buttoncount:
命令按纽组中按纽的个数(计数属性)
Value:
指定控件的当前状态(命令按钮组的按钮状态)。
Borderstyle:
Autosize:
根据内容自动调节大小。
Clickevents:
单击事件
4列表框:
主要用于显示一组预定的值并可以通过滚动条操作浏览列表信息,用户可以从列表框中可以选择需要的数据。
主要属性:
rowsourcetype:
指定列表框中的数据类型(如表或查询)(通常有三种常用选择:
值
(1),SQL语句(3),字段(6))。
Rowsource:
指定列表框中的数据(具体的值,字段,SELECT-SQL)
Controlsource:
用于指定用户从列表框中选择的值保存在何处(与boundcolumn一起使用)。
Columncount:
指定列表框中包含几列
Boundcolumn:
指定哪一列绑定到VALUE属性上
Mutiselected:
确定在列表框中能否进行多行选择
Sorted:
按字母进行排序
Moverbars:
显示移动条,进行手工排序。
Listcount:
列表框或组合框中的元素的个数
Additem方法:
在列表框或组合框中添加数据元素
Removeitem方法:
在列表框或组合框中移去数据元素
Selected()方法:
指定列表框或组合框中的数据元素是否处于选中状态
5组合框:
一种下拉式的列表框,可以从中选择一项或人工输入一个值,兼有列表框和文本框的功能,但只能显示一列,可通过属性来设置输入还是显示(style-0—下拉组合框;
2—下拉列表框)
6选项按纽组:
选项按纽组允许用户从中选择一个按纽,选项按纽旁边的圆点指示当前的选择。
主要的属性:
buttoncount:
设置按纽组中按钮的个数
caption:
设置每个按纽的标题,(\<
D)
alignment:
设置按纽的标志和标题的排列方式
value:
表明用户选定的哪一个按纽
controlsource:
设置选项的数据源的来源,或将选项值写入数据源
7复选框:
利用复选框指定或显示一个逻辑状态:
真/假,开/关,是/否等
设置复选框的标题
设置复选框的数据源,通常是表中的逻辑型字段。
Style:
指定复选框控件的样式(图形或标准样式)
Value:
指定复选框控件的状态
复选框的显示状态和VALUE的对应关系:
状态
VALUE值
没选中
0或.F.
选中
1或.T.
复选框变为灰色
2或.NULL.
8微调框:
微调框控件(SPINNER):
通过单击微调框控件的上箭头或下箭头,或者在微调框内键入一个数值,
controlsource:
指定与对象建立的数据源
value:
控件的当前状态
keyboardhighvalue:
键盘接受的最大值
keyboardlowvalue:
键盘接受的最小值
spinnerlowvalue:
按钮接受的最小值
spinnerhighvalue:
按钮接受的最大值
increment:
每次的增量
9表格:
表格是一种将数据以表格形式表示出来的控件,一个按行和列显示数据的容器对象,表格包括列,列标头,列控件等。
表格属性:
Allowheadersizing
(表头高度)
Allowrowsizing
(行高度)
Columncount
(列的数目)
Deletemark
(显示删除列)
Recordsourcetype
(数据源类型)
Recordsource
(数据源)
(滚动条)
Setall(某一类控件设置属性)
列控件属性:
(列控件的数据源)
Resizable
(列大小是否调整)
Dynamicfontsize
(动态调整字体的大小)
Dynamicforecolor
(动态调整字体的颜色)
列标头属性:
Alignment(对齐的方式)
Caption(列标题)
1利用表格的列控件的controlsource属性绑定字段,并利用INIT事件代码改变不及格学生的成绩的字体大小和颜色(两种方法)。
60,14,9)”
This.column3.dynamicforecolor=”iif(cj.cj<
60,rgb(255,0,0),rgb(0,0,255))”
This.setall(“dynamicbackcolor”,”iif(mod(recno(),2)=0,rgb(255,0,0),rgb(0,255,0)”,”column”)
10页框:
一种用于创建选项卡式对话框的容器类,一个页框可以包含多个页面,但每次
只能有一个活动页面。
pagecount:
包含的页面数目
tabs:
确定页面的选项卡是否可见
tabstyle:
指定选项卡大小均等且页框的宽度相同
backcolor:
页面的背景色
caption:
选项卡的标题
tabstretch:
对选项卡的标题太长的显示设置
activepage:
设置页框中的活动页面
11计时器:
计时器是在应用程序中用来处理复发事件的控件,该控件在运行时不可见,用于后台处理。
timer事件:
经过interval时间间隔发生的事件
enabled:
可以通过该属性在外部事件来启用计时器
interval:
指定计时器控件的timer事件之间的时间间隔(毫秒)
8.3典型例题精解
【选择题】
【例1】在VisualFoxPro系统中,用户不能自定义。
A.对象的属性B.对象的方法C.对象的事件D.对象所基于的类
【例2】下列VFP类中,不能基于它创建子类(派生类)的是。
A.线条(Line)B.页框(PageFrame)C.形状(Shape)D.标头(Header)
在VFP类中,能创建子类的类包括:
表单集、表单、工具栏、命令按钮组、命令按钮、文本框、微调框、表格、页框、组合框、复选框、选项按钮组、计时器、OLE控件、图像、形状线条。
不能创建子类的类包括:
标头、列、页面、选项按钮、分隔符。
【例3】在下列VisualFoxPro的基类中,无Caption属性的基类是_______。
A.标签B.选项按钮C.复选框D.文本框
在VFP基类中,无caption属性的基类有:
表单集,文本框,编辑框,微调框,表格,页框(页面有caption属性),组合框,列表框,选项按钮组(选项按钮有caption属性),计时器,OLE控件,图象,形状,线条,分隔符。
【例4】下列四组基类中,同一组中各个基类全是容器型的是。
A.Form,Column,TextBox
B.CommandButton,OptionGroup,ListBox
C.CommandGroup,DataEnvironment,Header
D.Grid,PageFrame,Column
【例5】某表单FormA上有一个命令按钮组CommandGroup1,命令按钮组中有四个命令按钮:
CmdTop,CmdPrior,CmdNext、CmdLast。
若要求按下按钮CmdLast时,将CmdNext的Enable属性置为.F.,则在按钮CmdLast的Click事件中加入命令。
A.This.Enable=.F.B.This.Parent.CmdNext.Enable=.F.
C.This.CmdNext.Enable=.F.D.Thisform.CmdNext.Enable=.F.
【例6】数据环境泛指定义表单、表单集或报表时使用的数据源,数据环境中只能包含。
A.表、视图和关系B.表C.表和关系D.表和视图
【例7】对于表单来说,用户可以设置其ShowWindow属性。
该属性的取值可以为_____。
A.在屏幕中或在顶层表单中或作为顶层表单
B.普通或最大化或最小化
C.无模式或模式
D.平面或3维
【例8】如果表单中有一命令按钮组,且已分别为命令按钮组和命令按钮组中的各个命令按钮设置了Click事件代码,则在表单的运行过程中单击某命令按钮时,系统执行的代码是。
A.该命令按钮的Click事件代码
B.该命令按钮组的Click事件代码
C.先命令按钮组的Click事件代码,后该命令按钮的Click事件代码
D.先该命令按钮的Click事件代码,后命令按钮组的Click事件代码
分析:
若命令按钮组及其所包含的各命令按钮分别设置了Click事件代码,VisualFoxPro系统将根据用户单击的位置执行相应的程序代码:
若单击命令按钮组区域内、命令按钮区域外,命令按钮组的Click事件将被触发;
而单击命令按钮组内某一命令按钮,则相应命令按钮的Click事件被触发。
若命令按钮组设置了Click事件代码而其所包含的各命令按钮没有设置Click事件代码,那么不管是单击命令按钮组区域内、命令按钮区域外,还是单击命令按钮组内某一命令按钮,都相应命令按钮组的Click事件。
【例9】关于表格控件,下列说法不正确的是。
A.表格的数据源可以是表、视图、查询B.表格中的列控件不包含其他控件
C.表格能显示一对多关系中的子表D.表格是一个容器对象
表格(Grid)控件是一个容器控件,表格包含列(Coloumn),第i列表示为Coloumn(i),列包含标头(Header)和文本框(Text)。
表格能显示各类表(自由表、主表、子表)。
表格控件的数据源类型只能是表、视图、查询。
【例10】可以添加到自定义工具栏上的控件。
A.只能是命令按纽
B.只能是命令按纽和分隔符
C.只能是命令按纽、文本框和分隔符
D.是除表格以外的所有可以添加到表单上的控件
答案:
D
【例12】以下几组控件中,均可直接添加到表单中的是。
A.命令按钮组、选项按钮、文本框
B.页面、页框、表格
C.命令按钮、选项按钮组、列表框
D.页面、选项按钮组、组合框
【例13】以下几组控件中,均具有ControlSource属性的是______。
A.EditBox,Grid,ComboBox
C.ComboBox,Grid,Timer
B.ListBox,Label,OptionButton
D.CheckBox,EditBox,OptionButton
解析:
具有ControlSource属性的控件是:
Text(文本框)、EditBox(编辑框)、OptionGroup(选项按纽组)、CheckBox(复选框)、ComboBox(组合框)、ListBox(列表框)、Spinner(微调框)。
选D。
【填空题】
【例1】事件是对象能够识别的一个动作,方法是对象能够执行的一组操作。
对于SetFocus和GotFocus,是方法,是事件。
事件和方法是容易混淆的概念,事件是对象能够识别的一个动作,方法是对象能够执行的一组操作。
【例2】已知某表单子类cformA含有一个命令按钮,且命令按钮的Click事件代码为:
Thisform.Backcolor=RGB(255,255,0)。
基于该子类创建并运行表单formk,则单击表单上的命令按钮后,表单的背景颜色为。
如果在表单formk中重新为