1、本 章 内 容,8.3表单控件设计8.3.1标签8.3.2图像、线条、形状8.3.3文本框8.3.4编辑框8.3.5列表框与组合框8.3.6命令按钮8.3.7命令按钮组,第八章面向对象程序设计,8.3.8复选框8.3.9选项按钮组 8.3.10微调控件8.3.11计时器8.3.12容器8.3.13表格8.3.14页框8.3.15表单集,8.3表单控件设计,1控件分类 VFP“表单控件”工具栏上有21个基类控件,按功能可分成以下5类: (1)输出类:标签、图像、线条、形状。 (2)输入类:文本框、编辑框、微调控件、列表框、组合框。 (3)控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器。
2、 (4)容器类:表格、页框、Contain容器、表单集。 (5)连接类:ActiveX控件、ActiveX挷定控件、超级链接控件。 2各类控件的缺省名称 各类控件的缺省名称见表810。,2各类控件的缺省名称各类控件的缺省名称见下表。,标签控件(Label)常用于显示说明信息和对象的标题。1标签常用属性标签的常用属性见下表:,8.3.1标签,1图像(Image) (1)图像控件的作用 图像控件用于在其中显示图像文件的图片。 (2)图像常用属性 图象对象常用属性见下表:,8.3.2图像、线条、形状,2线条(Line) (1)线条控件的作用 线条控件用于在表单上创建直线或斜线。默认创建一条。 (2)
3、线条常用属性 线条对象常用属性见下:,3形状(Shape) (1)形状控件的作用 形状控件用于在表单上创建圆、椭圆、正方形、矩形、圆角正方形和圆角矩形等几何形状。 (2)形状设置 形状对象常用属性见下表:,4应用举例【例88】设计一个如图841所示的应用程序封面,显示“职工管理系统”和“福建商业高等专科学校研制”,使用图片start.jpg作为封面的背景图案。单击“登录系统”按钮,则打开登录窗口。封面停留半分钟后自动关闭。(1)设计界面在表单上创建2个标签Label1与Label2、1个形状控件Shape1、1条水平线Line1、1个计时器Timer1与1个命令按钮Command1。 (2)设
4、置对象属性在“属性”窗口中,分别设置各对象的属性值如下表:,(3)编写事件代码1)计时器控件timer1的timer事件代码如下:Thisform.Release&30秒后关闭表单2)命令按钮Command1的Click事件代码如下:DO FORM Login.scx&调用登录表单(4)保存表单以“Start.scx”为名称保存表单。,图841应用程序封面,(5)运行表单 单击“常用”工具栏中的“运行”按钮,表单运行效果如图841所示。,文本框(Text)又称为输入框,用于输入数据和显示数据,它可接受字符型、数值型、日期型和逻辑型的数据。使用文本框只能输入一段文本。也就是说,按回车键即终止输入
5、。 1文本框常用属性 文本框常用属性见表817。 Format属性取值见表818。 InputMark属性取值见表819。,8.3.3文本框,表817文本框对象常用属性,表8817Format属性取值,表819InputMask属性取值,2文本框常用方法 SetFocus:文本框获得焦点。 3文本框常用事件 (1)Valid:在失去焦点之前发生。 (2)KeyPress:按下并释放一个键盘键时发生。 (3)LostFocus:按下并释放一个键盘键时发生。 (4)MouseDown:在该对象按下鼠标时发生。 (5)MouseUp:在该对象释放鼠标时发生。 (6)InteractivateChan
6、ge:文本框的值时发生。,【例89】设计如图842所示的表单,其功能是:从键盘输入职工的职工号,即显示该职工的姓名和基本工资。,(1)设计界面 在表单上创建两个标签Label1和Label2,一个文本框Text1和一个命令按钮Command1。 (2)设置数据环境 1)右击表单,在弹出的快捷菜单中选择“数据环境”命令。 2)在弹出的“添加表或视图”对话框中,选择Zgjk.dbf表,单击“添加”按钮,将其添加到“数据环境设计器”窗口中。(3)创建字段映像 用鼠标将“数据环境设计器”窗口中Zgjk.dbf表的“姓名”和“基本工资”字段拖放到表单上,从而在表单上产生两个标签控件(lbl姓名,lbl基
7、本工资)和两个文本框控件(txt姓名,txt基本工资)。,(4)设置对象属性,(5)编写事件代码 1)表单Form1的Init事件代码如下: * 将记录指针移出界,使运行时“姓名”与“基本工资”文本框内无内容 Go Bottom Skip,2)命令按钮Command1的Click事件代码如下:If !Empty(Thisform.Text1.Value)&若文本框非空 Go Top Locate For 职工号=Alltrim(Thisform.Text1.Value) If Found() Thisform.Label2.Caption=提示:记录找到,相关内容显示如下: Else This
8、form.Label2.Caption=提示:未找到相关记录! Endif Thisform.Refresh&刷新表单Else Thisform.Label2.Caption=提示:请在文本框中输入查找内容!Endif,图842查询职工的姓名和基本工资,(6)保存表单 以“查询姓名和工资.scx”为名称保存表单。 (7)执行表单 单击“常用”工具栏中的“运行”按钮,表单运行效果如图842所示。,编辑框(Edit)实际上是一个字处理器,可以输入和编辑字符型数据,常作为备注型字段数据的绑定控件。 编辑框只能输入字符型的数据,且可以输入多段文本。 1编辑框常用属性 编辑框常用属性见下页表820。 2
9、编辑框常用方法和事件 编辑框常用方法和事件与文本框相似。,8.3.4编辑框,表821编辑框的常用属性,【例810】创建一个如图843所示的“剪贴板”表单。要求如下: 1)文本框中选定内容后,“复制”命令按钮被激活; 2)按下“复制”命令按钮,实现文本框选定内容复制到剪贴板; 3)按下“粘贴”命令按钮,实现剪贴板内容粘贴到编辑框。 (1)设计界面 新建一个表单,在表单上添加2个标签Label1和Label2,1个文本辑框Text1、1个编辑框Edit1和2个命令按钮Command1和Command2。 (2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值,见表821。,表821对象属性值
10、的设置,(3)编写事件代码1)表单Form1的Init事件的代码如下:Thisform.Text1.SetFocus&文本框获得焦点2)文本框Text1的MouseUp事件的代码如下:LPARAMETERS nButton, nShift, nXCoord, nYCoord* 判断文本框中是否有选定内容,有则激活Command1If Len(this.SelText)0 &若文本框中有被选定的内容 Thisform.Command1.Enabled=.T. &“复制”命令按钮有效Endif 3)“复制”命令按钮Command1的Click事件的代码如下: _CLIPTEXT =Thisform
11、.Text1.selText &将选定内容复制到剪贴板 This.Enabled=.F. &“复制”命令按钮失效 Thisform.Command2.Enabled=.T. &“粘贴”命令按钮有效,图843例810运行的结果,4)“粘贴”命令按钮Command2的Click事件的代码如下: Thisform.Edit1.SelText= _CLIPTEXT &将剪贴板内容粘贴到编辑框 Thisform.Edit1.SetFocus &编辑框获得焦点,(4)以“剪贴板 .SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图843所示。,【例811】创建如图844所
12、示的修改表的简历字段的表单。要求如下:1)在文本框中输入要修改记录的职工号,若该职工号存在,即显示其姓名和简历,此时“修改简历”按钮有效;若该职工号不存在,即弹出提示框,要求重新输入。2)单击“修改简历”命令按钮,则光标移入编辑框。3)按下“确认退出”命令按钮,则关闭表单。(1)设计界面新建一个表单,在表单上添加1个标签Label1,1个文本辑框Text1和2个命令按钮Command1和Command2。(2)创建字段映像1)打开“数据环境设计器”窗口,添加Zgjk.dbf表。2)用鼠标将“数据环境设计器”窗口中的“姓名”字段拖放到表单上,生成2个字段映像控件:标签“lbl.姓名”和文本框“t
13、xt.姓名”;将“简历”字段拖放到表单上,生成2个字段映像控件:标签“lbl.简历”和编辑框“edt.简历”。,表822对象属性值的设置,(2)设置对象属性,(3)编写事件代码1)表单Form1的Init事件的代码如下:Go BottSkip &将指针移出记录,使运行初始界面无数据Thisform. edt.简历.Enabled= .F. &简历编辑框失效Thisform.Command1.Enabled= .F. &“修改简历”按钮失效2)文本框Text1的InteractivateChange事件的代码如下:Locate FOR 职工号=ALLTRIM(This.Value)IF FOUN
14、D() Thisform. edt.简历.Enabled= .F. &简历编辑框有效 Thisform.Command1.Enabled= .T. &“修改简历”按钮有效ELSE MESSAGEBOX(输入的职工号不存在,请重新输入!) This.Value= &清空输入职工号文本框 This.SetFocus &输入职工号文本框获得焦点ENDIFThisform.Refresh&刷新表单,图844“修改简历”表单运行的结果,3)“确认退出”命令按钮Command2的Click事件代码如下:ThisForm.Release &释放表单 (5)以“修改简历.SCX”为文件名保存表单。(6)单击“
15、常用”工具栏中的“运行”按钮 ,表单运行结果如图844所示。,列表框(List)与组合框(Combo) 都是提供选择一个或多个输入项的列表,二者之间又存在如下区别: (1)列表框显示全部选项列表;组合框只显示一条选项,单击右端下拉按钮,才显示全部选项列表。 (2)组合框又分为下拉组合框和下拉列表框,前者允许输入数据,后者与列表框一样仅有选取功能。 1列表框与组合框常用属性 列表框与组合框的常用属性见表823。,8.3.5列表框与组合框,表823列表框与组合框的常用属性,2RowSourceType与RowSource属性(见下表),3列表框与组合框常用方法 (1)AddItem:当组合框或列表
16、框的RowSourceType属性值为0时,可使用此方法在列表中添加一条新选项。 (2)RemoveItem:当组合框或列表框的RowSourceType属性值为0时,可使用此方法删除列表中一条选项。 (3)Clear:清除列表框中所有选项。 4列表框与组合框常用事件(1)InteractivateChange:列表框或组合框的值发生改变时引发。(2)Click:单击列表框或组合框时引发。 5列表框和组合框生成器 使用生成器可方便地设置列表框和组合框的属性。,【例812】设计一个如图851所示的表单,用于选拔职工参加演讲比赛。在组合框中显示职工简况表中所有职工的姓名,单击“添加”按钮,将其添加
17、到列表框中;单击“删除”按钮,则移去列表框中被选中的职工姓名;单击“全部清除”按钮,则清除列表框中所有的职工姓名。 (1)设计界面 创建表单,并在表单上添加两个标签Label1和Label2,一个组合框Combo1,一个列表框List1,三个命令按钮Command1、Command2和Command3。,(2)设置对象属性,(3)编写事件代码 1)命令按钮Command1的Click事件的代码如下:If Empty(Thisform.Combo1.Value) &若组合框为空,则什么都不做 ReturnEndifFor i=1 to Thisform.List1.Listcount &历遍列表
18、框的所有选项 If Thisform.Combo1.Value=Thisform.List1.List(i) &若组合框中的选项已存在于列表框,则提示 Messagebox(已存在该列表项) Return EndifEndforThisform.List1.Additem(Thisform.Combo1.Value) &将组合框内容添加到列表框Thisform.Combo1.Value= &清空组合框Thisform.Combo1.Setfocus&组合框获得焦点,2)命令按钮Command2的Click事件的代码如下:If Thisform.List1.Listindex0 &若列表框有选中
19、项,则删除 Thisform.List1.Removeitem(Thisform.List1.Listindex)EndifThisform.List1.Listindex=Thisform.List1.Listcount &将末项设为选中项3)命令按钮Command3的Click事件的代码如下:,Thisform.List1.Clear &清空列表框(4)以“选拔职工.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图851所示。,图851例L8-13运行的结果,【例813】设计一个如图852所示表单,用于浏览职工销售业绩。在组合框中选定职工号,即在列表框中
20、显示该职工的销售业绩信息,包括:姓名、销售数量、商品编号、商品名称、规格型号和单价。,(1)设计界面创建表单,并在表单上添加三个标签Label1、Label2和Label3,一个组合框Combo1和一个列表框List1。 (2)设置对象属性( 如下页表所示)。,(3)编写事件代码组合框Combo1的InteractivateChange事件代码如下: Thisform.List1.Rowsource = ; Select Zgjk.姓名,Xs.销售数量,Sp.商品编号,Sp.商品名称,Sp.规格型号, ; Sp.单价 From Zgjk,Xs,Sp; Where Sp.商品编号=Xs.商品编号
21、 AND ; Zgjk.职工号=Xs.职工号 AND Zgjk.职工号=This.Value ; Into Cursor temptable “ &从3个表选择符合条件的记录放入临时表, 作为list1的数据源 Thisform.Refresh &刷新表单,(4)以“浏览销售业绩.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图852所示。,图852例813运行的结果,命令按钮(Commmand)常用于启动事件,以执行某项操作,如关闭表单、移动记录指针等。 1命令按钮常用属性(见下表),8.3.6命令按钮,2命令按钮常用方法(1)Click(2)RightC
22、lick,3应用举例【例814】创建一个如图853所示的表单。若单击“表单背景色”命令按钮,则随机地改变表单背景的颜色;若单击“标签前景色”命令按钮,则随机地改变标题的颜色。操作步骤如下:(1)设计界面1)打开“表单设计器”窗口,并创建一个空白表单。2)在表单上创建1个标签控件Label1与2个命令按钮Command1和Command2。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值,见表828,表828对象属性值的设置,(3)编写事件代码1)命令按钮Command1的Click事件代码如下:a=INT(RAND()*255)&随机函数RAND()产生不大于1的随机数b=INT(R
23、AND()*255)c=INT(RAND()*255)Thisform.BackColor=RGB(a,b,c),2)命令按钮Command2的Click事件代码如下:a=INT(RAND()*255)b=INT(RAND()*255)c=INT(RAND()*255)Thisform.Label1.ForeColor=RGB(a,b,c)(4)保存表单以“随机改变颜色.scx”为文件名,保存表单。,表853随机改变颜色,(5)运行表单单击“常用”工具栏中的“运行”按钮,表单运行结果如图853所示。,命令按钮组(CommmandGroup)是包含若干个命令按钮的容器。命令按钮组和组内各命令按钮
24、都有各自的属性、方法和事件。 1命令按钮组常用属性(见下表),8.3.7命令按钮组,2命令按钮组中命令按钮的编辑要编辑命令按钮组中的命令按钮,必须先激活组容器。激活组容器有如下两种方法:(1)右击命令按钮组,在弹出的快捷菜单中选择“编辑”命令。组容器被激活后,呈现绿色斜线边框。(2)在“属性”窗口中,选定组容器内的对象,即进入编辑态。推而广之,容器类的对象,如命令按钮组、选项按钮组、表格、页框等,若要编辑其中的对象,都先激活它们,使其进入编辑状态。3命令按钮组常用事件Click:单击命令按钮组中的按钮时引发,4应用举例【例815】创建简单加减计算器,如图854所示。该计算器的功能如下: 1)单
25、击按钮 ,则清空文本框中的内容;2)单击正负号、数字和小数点按钮,将在文本框中输入相应的内容;3)单击按钮 ,将计算的结果显示于文本框内。操作步骤如下: (1)设计界面 创建表单,并在表单上添加一个文本框Text1和命令按钮组CommandGroup1。,(2)设置对象属性,(3)编写事件代码命令按钮组CommandGroup1的Click事件的代码如下:If ThisForm.Commandgroup1.Value“” AND ;ThisForm.Commandgroup1.ValueC ThisForm.Text1.Value=;ThisForm.Text1.Value+ThisForm.
26、Commandgroup1.ValueEndifIf ThisForm.Commandgroup1.Value= S=ThisForm.Text1.Value ThisForm.Text1.Value=&S &将字符型内存变量S的内容宏替换出来 放入文本框EndifIf ThisForm.Commandgroup1.Value=C ThisForm.Text1.Value= &清空文本框EndifThisform.Refresh &刷新表单,图854简单加减计算器,(4)保存表单以“加减计算器.SCX”为文件名保存表单。(5)执行表单单击“常用”工具栏中的“运行”按钮 ,表单运行结果如图854
27、所示。,复选框(CheckBox)由一个方框和标题说明组成,用于标记一个两值状态:为真(.T.)状态,为假(.F.)状态。用户可选择若干个复选框中的一个或多个。1复选框常用属性(见下表),8.3.8复选框,2复选框常用事件(1)Click:单击复选框时引发。(2)InteractivateChange:复选框值发生改变时引发。 【例816】设计一个表单,用于分别统计男女职工的人数和基本工资总额。若选中复选框,则统计男职工的人数和基本工资总额;否则统计女职工的人数和基本工资总额。操作步骤如下:(1)设计界面 创建表单,并在表单上添加3个标签Label1、Label2和Label3,一个复选框Ch
28、eck1,两个文本框Text、Text2和一个命令按钮Command1。,(2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值,见表832。,(3)编写事件代码命令按钮Command1的Click事件代码如下:Dimension X(2) &定义数组Chx=ThisForm.Check1.Value&复选框的值为0或1Sex=Iif(chx=0,“女”,“男”)&若chx=0,则Sex=女;否则Sex=男Select Count(*),SUM(基本工资) From Zgjk Where 性别=Sex Into Array XThisform.Label2.Caption=Sex+职工人
29、数Thisform.Label3.Caption=Sex+职工基本工资总额Thisform.Text1.value=X(1)Thisform.Text2.value=X(2)Thisform.Refresh&刷新表单(4)以“统计男女职工人数.SCX”为文件名保存表单。,(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图855所示。,图855表单运行的结果,【例817】设计一个如图856所示的表单,用于显示不同字体、字号和字型的示例文字。操作步骤如下:(1)设计界面创建表单,并在表单上添加3个标签Label1、Label2和Label3,3个复选框Check1和2个组合框Combo1和
30、Combo2 。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值,见表833。,(3)编写事件代码1)复选框Check1的Click事件代码如下:IF This.Value=1 Thisform.Label1.FontBold= .T.ELSE Thisform.Label1.FontBold= .F.ENDIF2)复选框Check2的Click事件代码如下:IF This.Value=1 Thisform.Label1. FontUnderline= .T.ELSE Thisform.Label1. FontUnderline= .F.ENDIF,3)复选框Check3的Click
31、事件代码如下:IF This.Value=1 Thisform.Label1.FontItalic=.T.ELSE Thisform.Label1.FontItalic= .F.ENDIF4)组合框Combo1的InteractivateChange事件代码如下:Thisform.Label1.FontName=ALLTRIM(This.DisplayValue)5)组合框Combo2的InteractivateChange事件代码如下:Thisform.Label1.FontSize=VAL(ALLTRIM(This.DisplayValue)Thisform.Label1.Left=;Th
32、isform.Width/2-Thisform.Label1.Width/2 & Label1居中,(4)以“字体示例.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮 ,表单运行结果如图856所示。,图856“字体示例”表单运行的结果,选项按钮组(OptionGroup)是包含选项按钮的容器。其特点是按钮组中只能一个选项按钮被选中。1选项按钮组常用属性选项按钮组常用属性见下表:,8.3.9选项按钮组,2选项按钮组常用事件(1)Click:单击选项按钮时引发。(2)InteractivateChange:选项按钮组发生改变时引发。,【例818】设计一个如图857所示表单,实现
33、按部门统计职工的人数。,操作步骤如下: (1)设计界面创建一个表单,并在表单上添加一个选项组、一个文本框和两个标签,如图857所示。 (2)设置对象属性在“属性”窗口中,分别设置各对象的属性值见下表。,(3)编写事件代码选项按钮组OptionGroup1的Click事件代码如下:Select Count(*) From Zgjk;Where 部门=This.Value Into Array X&统计部门人数,并将结果放入内存变量xThisform.Text1.Value=X(1)&将数组的值写入文本框Thisform.Label1.Caption=This.Value+部门共有 &Value的
34、值为家电、服装或文具,图857表单运行的结果,(4)以“L8-16.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图857所示。,【例8819】设计一个分类查询表单,其功能是:能够分别按人事、工资和销售查询本单位职工某方面信息 。,操作步骤如下: (1)设计界面在表单上创建1个标签、选项按钮组、表格和命令按钮,如图858所示 。 (2)设置对象属性在“属性”窗口中,分别设置各对象的属性值见下表。,(3)编写事件代码选项按钮组的Click事件代码如下:Do Case Case Thisform.OptionGroup1.Value=1 Thisform.Gri
35、d1.RecordSource=; SELECT * FROM Zgjk INTO CURSOR TMP Case Thisform.OptionGroup1.Value=2 Thisform.Grid1.RecordSource=; SELECT * FROM 职工业绩!View_gz INTO CURSOR TMP SELECT * FROM 职工业绩!View_xs2 INTO CURSOR TMP&View_xs2为销售业绩视图EndcaseThisform.Refresh,2)“退出”命令按钮Command1的Click事件代码如下:Close all TableThisform.R
36、elease(4)保存表单以“职工信息分类查询.scx”为名称保存表单。(5)运行表单表单运行效果如图858所示,图858职工信息分类查询表单,微调控件(Spinner)用于接受给定范围内的数值输入。它既可以用键盘直接输入,也可以用鼠标单击该控件的上下箭头按钮来增减当前值。微调控件可以与数值型变量和字段绑定 。1计时器常用属性(见下表),8.3.10微调控件,2选项按钮组常用事件(1)InteractivateChange:微调控件值发生改变时引发。(2)DownClick:单击向下箭头按钮时引发。(3)UpClick:单击向上箭头按钮时引发。3应用举例,【例820】设计一个图859所示表单,
37、要求如下:改变3个微调控件的值,然后单击“更新”按钮,则改变形状控件的颜色和形状;若3个微调控件的值分别为255、0、0,形状控件为红色的正方形;若3个微调控件的值分别为0、0、255,形状控件为蓝色的圆形。,(1)设计界面创建一个表单,并在表单上添加1个形状控件Shape1、3个微调控件Spinner1、Spinner2和Spinner3,1个命令按钮Command1,如图859所示。,(2)设置对象属性设置各对象的属性见下表。,(3)编写事件代码命令按钮Command1的Click事件代码如下:R=Thisform.Spinner1.ValueG=Thisform.Spinner2.Val
38、ueB=Thisform.Spinner3.ValueThisform.Shape1.Curvature=(R+G+B)/3/255*99Thisform.Shape1.BackColor=RGB(R,G,B)If R=255 and G=0 and B=0 Thisform.Shape1.Curvature=0&形状控件为正方形 Thisform.Shape1.BackColor=RGB(R,G,B)EndifIf R=0 and G=0 and B=255 Thisform.Shape1.Curvature=99&形状控件为蓝色的圆形 Thisform.Shape1.BackColor=R
39、GB(R,G,B)ENDIFThisform.refresh,图859例820运行的结果,(4)以“形色更新.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮 ,表单运行结果如图859所示。,计时器(Timer)控件像一个闹钟,它以一定的时间间隔重复执行某种操作。当达到规定的时间间隔时,系统自动触发Timer事件。 在表单设计的过程中,计时器控件可见;表单运行时,计时器控件自动隐藏。 1计时器常用属性(见下表),8.3.11 计时器,2计时器常用事件Timer:达到Interval设置计时间隔即触发。,分析:使用计时器控件Timer,将该控件的Interval属性设置为500
40、,即每0.5秒触发一次计时器控件的Timer事件(显示一次系统时间);将计时器控件的Interval属性设置为0将停止触发Timer事件。 操作步骤如下: (1)设计界面 创建一个表单,并在表单上添加两个标签Label1,Label2;三命令按钮Command1,Command2,Command3和一个计时器控件Timer1。,【例821】设计一个如图860所示的表单,具体要求如下: 1)表单名为Timer,表单标题为“时钟”,表单运行时自动显示系统的当前时间; 2)要求显示时间的标签控件Label1在表单中居中,标签文本对齐方式为居中; 3)单击“暂停”命令按钮(Command1)时,时钟停
41、止; 4)单击“继续”命令按钮(Command2)时,时钟继续显示系统的当前时间; 5)单击“退出”命令按钮(Command3)时,关闭表单。,(2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值见下表。,(3)编写事件代码1)双击“暂停”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Timer1.Interval=02)双击“继续”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Timer1.Interval=5003)双击“退出”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Release4)双击计时器控件
42、timer1,打开代码编辑窗口,输入timer事件代码如下: Thisform.Label2.Caption=Time(),图860“时钟”表单运行的结果,(4)以“时钟.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图860所示。,1容器的特性 容器(Container)可包含除表单和表单集之外多个不同类型的对象。 要向容器中添加对象,必须先激活容器。具体操作方法是:右击容器,在弹出的快捷菜单中选择“编辑”命令,使容器处于编辑状态,此时添加的对象才会到容器中。如果没有激活容器而添加对象,实际上对象是添加到表单上而不是容器中。推而广之,容器类的对象,若要编辑
43、其中的对象,都先激活它们,使其进入编辑状态。 2容器常用属性 容器对象常用属性见下表:,8.3.12容器,【例823】设计一个文件名为“水位变化.scx”的表单,运行界面如图863所示,要求如下:1)新建表单Form1,标题为“水位变化”,运行时在屏幕居中;2)添加一个容器控件Container1,其height属性值为100,Width属性值为96,背景色为白色,即RGB(255,255,255);3)添加一个属于容器控件的矩形形状控件Shape1,其height属性值为50,Width属性值为96,背景色为蓝色,即RGB(0,0,255); 4)添加一个标签控件Label1,标题为“水位高
44、度”,大小自适应;5)添加一个微调控件Spinner1,微调的最大值和最小值均为100和1(含鼠标和键盘输入),初始值为50;6)编写微调控件的事件代码,实现水位变化。操作步骤如下:(1)设计界面创建一个表单,并在表单上添加如图863所示的控件。,(2)设置对象属性,(3)编写事件代码微调控件Spinner1的Interactivechange事件的代码如下:Thisform.Container1.Shape1.Height=This.ValueThisform.Container1.Shape1.Top=100-This.Value(4)以“水位变化.SCX”为文件名保存表单。(5)单击“常
45、用”工具栏中的“运行”按钮 ,表单运行结果如图862所示。,图862“水位变化”表单运行效果,表格(Grid)是一种按行与列显示数据的容器对象,其外观与Browse窗口相似。表格是一种多重容器,一个表格由若干个列对象(Column)组成,每个列对象包含一个列标头对象(Header)和若干个列控件。表格、列、列标头和列控件都有属于自己的属性、事件和方法。 1表格的组成 (1)表格(Grid):容器对象,由若干个列对象组成。 (2)列(Column):也是容器对象,由列标头和列控件组成。 (3)列标头(Header):默认值为数据库表、自由表和视图中的字段名或字段标题。 (4)列控件:默认值为文本
46、框(Text1),允许修改为与该控件字段类型相容的其他控件。例如:逻辑型字段可用复选框,数值型字段可用微调控件。,8.3.13表格,2表格及其内部所含对象的常用属性,3表格常用事件 (1)Click:单击表格时引发。 (2)InteractivateChange:表格的值发生改变时引发。 4表格的编辑 (1)改变列数 (2)增删表格列 (3)调整表格的行高或列宽 1)通过属性窗口调整行高或列宽在属性窗口中,设置HeaderHeight的属性值,以调整标头的行高;设置RowHeight的属性值,以调整控件的行高;设置Width的属性值,以调整标头的列宽。 2)手工调整行高或列宽(先编辑态) 5创建表格对象 在设计过程中,一般先在表单上创建一个表格,然后再用“表格生成器”设置属性,从而得到所需的表格。,