面向对象程序设计控件_第1页
面向对象程序设计控件_第2页
面向对象程序设计控件_第3页
面向对象程序设计控件_第4页
面向对象程序设计控件_第5页
已阅读5页,还剩100页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

面向对象程序设计控件第1页,共105页,2023年,2月20日,星期二§8.3表单控件设计

1.控件分类

VFP“表单控件”工具栏上有21个基类控件,按功能可分成以下5类:(1)输出类:标签、图像、线条、形状。(2)输入类:文本框、编辑框、微调控件、列表框、组合框。(3)控制类:命令按钮、命令按钮组、复选框、选项按钮组、计时器。(4)容器类:表格、页框、Contain容器、表单集。(5)连接类:ActiveX控件、ActiveX挷定控件、超级链接控件。

2.各类控件的缺省名称各类控件的缺省名称见表8-10。第2页,共105页,2023年,2月20日,星期二2.各类控件的缺省名称各类控件的缺省名称见下表。控件缺省名称控件缺省名称表单Form微调控件Sprinner标签Label表格Grid命令按钮Command图像Image文本框Text计时器Timer编辑框Edit页框Pageframe命令按钮组Commandgroup容器Container选项按钮组Optiongroup线条Line复选框Ckeck形状Shape组合框ComboActive挷定控件Oleboundctrol列表框List超级链接Hyperlink第3页,共105页,2023年,2月20日,星期二标签控件(Label)常用于显示说明信息和对象的标题。1.标签常用属性标签的常用属性见下表:§8.3.1标签属性功能Caption指定标签的标题,字符型数据WordWrap为.T.时,标签的内容自动换行,缺省值为.F.第4页,共105页,2023年,2月20日,星期二

1.图像(Image)(1)图像控件的作用图像控件用于在其中显示图像文件的图片。(2)图像常用属性图象对象常用属性见下表:

§8.3.2图像、线条、形状属性作用Picture图像文件名Strech指定图像填充方式:0—剪裁(默认值),1—等比,2—变比第5页,共105页,2023年,2月20日,星期二

2.线条(Line)(1)线条控件的作用线条控件用于在表单上创建直线或斜线。默认创建一条。(2)线条常用属性线条对象常用属性见下:

属性作用LineSlant\(默认值)——斜线方向从左上角到右下角/——斜线方向从右上角到左下角BorderColor指定线条的颜色BorderStyle指定线条的样式(实线、虚线、点线、点划线……)BorderWidth指定线条的宽度(粗细)Height0—水平线Width0—垂直线第6页,共105页,2023年,2月20日,星期二

3.形状(Shape)(1)形状控件的作用形状控件用于在表单上创建圆、椭圆、正方形、矩形、圆角正方形和圆角矩形等几何形状。(2)形状设置形状对象常用属性见下表:属性作用BorderColor指定形状控件边框线的颜色BorderStyle指定形状控件边框线的样式(实线、虚线、点线、点划线……)BorderWidth指定形状控件边框线的宽度Curvature0(若Width与Height的值相等,则为正方形;若Width与Height的值不等,则为矩形)1→99(若Width与Height的值相等,则小圆角正方形→大圆角正方形→圆;若Width与Height的值不等,则小圆角矩形→大圆角矩形→椭圆)SpecialEffect指定形状控件特殊效果(1-平面,0—三维)第7页,共105页,2023年,2月20日,星期二

4.应用举例【例8-8】设计一个如图8-41所示的应用程序封面,显示“职工管理系统”和“福建商业高等专科学校研制”,使用图片start.jpg作为封面的背景图案。单击“登录系统”按钮,则打开登录窗口。封面停留半分钟后自动关闭。(1)设计界面在表单上创建2个标签Label1与Label2、1个形状控件Shape1、1条水平线Line1、1个计时器Timer1与1个命令按钮Command1。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值如下表:第8页,共105页,2023年,2月20日,星期二对象属性名属性值说明Form1PictureAutoCenterShowWindowd:\vfp\start.jpg.T.2指定表单背景图案文件运行时自动居中作为顶层表单Label1CaptionAutoSizeBackStyleForeColorFontNameFontSize职工管理系统.T.0255,0,0隶书48自动大小透明红色字符字体字号Label2CaptionAutoSizeBackStyleForeColorFontNameFontSizeFontBold福建商业高等专科学校研制.T.00,0,255楷体_231220.T.自动大小透明蓝色字符字体字号加粗第9页,共105页,2023年,2月20日,星期二对象属性名属性值说明Shape1CurvatureHeightWidthBackStyleBorderColorBorderWidth991006000255,0,03椭圆椭圆外切矩形的高椭圆外切矩形的宽透明红色线粗Line1HeightWidthTopLeftBorderColor03362043480,0,255水平线水平线长左上角的纵坐标左上角的横坐标蓝色Timer1Interval30000单位为毫秒Command1Caption登录系统第10页,共105页,2023年,2月20日,星期二(3)编写事件代码

1)计时器控件timer1的timer事件代码如下:

Thisform.Release &&30秒后关闭表单

2)命令按钮Command1的Click事件代码如下:

DOFORMLogin.scx

&&调用登录表单(4)保存表单以“Start.scx”为名称保存表单。第11页,共105页,2023年,2月20日,星期二图8-41应用程序封面

(5)运行表单单击“常用”工具栏中的“运行”按钮,表单运行效果如图8-41所示。第12页,共105页,2023年,2月20日,星期二文本框(Text)又称为输入框,用于输入数据和显示数据,它可接受字符型、数值型、日期型和逻辑型的数据。使用文本框只能输入一段文本。也就是说,按回车键即终止输入。

1.文本框常用属性文本框常用属性见表8-17。

Format属性取值见表8-18。

InputMark属性取值见表8-19。§8.3.3文本框第13页,共105页,2023年,2月20日,星期二属性作用Value文本框存放的值,类型可以是C、N、D、L,分别对应于(无)、0、{}、.F.。其中(无)表示C型数据,也是默认值。设计时可对此属性赋初值,初值的类型决定文本框数据的类型ControlSource指定与文本框绑定的数据源。数据源可以是字段变量或内存变量Format指定Value属性输入时的约束或显示方式(参数的意义见表8-18)InputMask控制输入数据格式和显示方式(参数的意义见表8-19)PasswordChar指定文本框内显示输入的占位符Alignment指定文本框中数据对齐的方式:0—左对齐,1—右对齐,2—居中(默认值)SelLength文本框中被选择的文本的字数SelText文本框中被选择的文本内容表8-17文本框对象常用属性第14页,共105页,2023年,2月20日,星期二表8-8-17Format属性取值属性值作用A只允许字母字符(无空格和标点符号)D使用SETDATE命令设置当前的日期格式E按BRITISH日期格式编辑日期型数据K当光标移到文本框上时,框中数据就被选定L在文本框中显示数值型数据的前导0(以取代空格),只使用于数值型数据R显示文本框的格式屏蔽,屏蔽不放入控制源中,只使用于字符型或数值型数据T截去输入字段中前导空格和尾随空格!小写字母转换成大写字母,只使用于字符型数据^用科学表示法显示数值型数据,只使用于数值型数据$显示货币符,只使用于数值型和货币型数据第15页,共105页,2023年,2月20日,星期二属性作用X允许输入任何字符A只允许输入字母9允许输入数字和正负号#允许输入数字、正负号和空格$显示当前货币符号(由SETCURRENCY命令指定)*在数字左边显示星号*.指示小数点位置,分隔小数点左边的数字串表8-19InputMask属性取值第16页,共105页,2023年,2月20日,星期二

2.文本框常用方法

SetFocus:文本框获得焦点。

3.文本框常用事件(1)Valid:在失去焦点之前发生。(2)KeyPress:按下并释放一个键盘键时发生。(3)LostFocus:按下并释放一个键盘键时发生。(4)MouseDown:在该对象按下鼠标时发生。(5)MouseUp:在该对象释放鼠标时发生。(6)InteractivateChange:文本框的值时发生。

【例8-9】设计如图8-42所示的表单,其功能是:从键盘输入职工的职工号,即显示该职工的姓名和基本工资。第17页,共105页,2023年,2月20日,星期二

(1)设计界面在表单上创建两个标签Label1和Label2,一个文本框Text1和一个命令按钮Command1。

(2)设置数据环境

1)右击表单,在弹出的快捷菜单中选择“数据环境”命令。

2)在弹出的“添加表或视图”对话框中,选择Zgjk.dbf表,单击“添加”按钮,将其添加到“数据环境设计器”窗口中。(3)创建字段映像用鼠标将“数据环境设计器”窗口中Zgjk.dbf表的“姓名”和“基本工资”字段拖放到表单上,从而在表单上产生两个标签控件(lbl姓名,lbl基本工资)和两个文本框控件(txt姓名,txt基本工资)。第18页,共105页,2023年,2月20日,星期二

象属

名属

值说明

Label1Caption职工号Label2CaptionAutoSize提示:.T.自动大小

Text1InputMark9999允许输入4位任意数字

Txt姓名Readonly.T.只读

Txt基本工资Readonly.T.只读

Command1Caption查询(4)设置对象属性

(5)编写事件代码1)表单Form1的Init事件代码如下:

*将记录指针移出界,使运行时“姓名”与“基本工资”文本框内无内容

GoBottomSkip第19页,共105页,2023年,2月20日,星期二2)命令按钮Command1的Click事件代码如下:If!Empty(Thisform.Text1.Value) &&若文本框非空

GoTopLocateFor职工号=Alltrim(Thisform.Text1.Value)IfFound()Thisform.Label2.Caption="提示:记录找到,相关内容显示如下:"ElseThisform.Label2.Caption="提示:未找到相关记录!"EndifThisform.Refresh &&刷新表单ElseThisform.Label2.Caption="提示:请在文本框中输入查找内容!"Endif第20页,共105页,2023年,2月20日,星期二图8-42查询职工的姓名和基本工资(6)保存表单以“查询姓名和工资.scx”为名称保存表单。

(7)执行表单

单击“常用”工具栏中的“运行”按钮,表单运行效果如图8-42所示。第21页,共105页,2023年,2月20日,星期二编辑框(Edit)实际上是一个字处理器,可以输入和编辑字符型数据,常作为备注型字段数据的绑定控件。编辑框只能输入字符型的数据,且可以输入多段文本。

1.编辑框常用属性编辑框常用属性见下页表8-20。

2.编辑框常用方法和事件编辑框常用方法和事件与文本框相似。§8.3.4编辑框第22页,共105页,2023年,2月20日,星期二属性作用ControlSource指定编辑框的数据源。通常与备注型字段绑定Enabled指定编辑框是否有效(.T.-有效.F.-无效)HideSelection.T.(缺省值)—失去焦点时,编辑框中选定的文本不显示为选定状态;.F.—失去焦点时,编辑框中选定的文本仍显示为选定状态ReadOnly指定编辑框中内容的只读属性(.T.—只读,.F.[缺省值]—可写)ScrollBars指定编辑框是否有滚动条(0—无,2[缺省值]—有)SelText编辑框中被选择的文本内容SelStart编辑框中被选择的文本的起始位置SelLength编辑框中被选择的文本的字数Value指定编辑框中的值,并在编辑框中显示(只能是C类型数据)表8-21编辑框的常用属性第23页,共105页,2023年,2月20日,星期二

【例8-10】创建一个如图8-43所示的“剪贴板”表单。要求如下:

1)文本框中选定内容后,“复制”命令按钮被激活;

2)按下“复制”命令按钮,实现文本框选定内容复制到剪贴板;

3)按下“粘贴”命令按钮,实现剪贴板内容粘贴到编辑框。(1)设计界面新建一个表单,在表单上添加2个标签Label1和Label2,1个文本辑框Text1、1个编辑框Edit1和2个命令按钮Command1和Command2。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值,见表8-21。第24页,共105页,2023年,2月20日,星期二

象属

性属

值说明

Form1

Caption剪贴板Label1

Caption文本框Label2

Caption编辑框Command1CaptionEnabled复制.F.失效Command2CaptionEnabled粘贴.F.失效表8-21对象属性值的设置第25页,共105页,2023年,2月20日,星期二(3)编写事件代码1)表单Form1的Init事件的代码如下:Thisform.Text1.SetFocus &&文本框获得焦点2)文本框Text1的MouseUp事件的代码如下:LPARAMETERSnButton,nShift,nXCoord,nYCoord*判断文本框中是否有选定内容,有则激活Command1IfLen(this.SelText)>0 &&若文本框中有被选定的内容

Thisform.Command1.Enabled=.T.&&“复制”命令按钮有效Endif3)“复制”命令按钮Command1的Click事件的代码如下:

_CLIPTEXT=Thisform.Text1.selText&&将选定内容复制到剪贴板

This.Enabled=.F. &&“复制”命令按钮失效

Thisform.Command2.Enabled=.T.&&“粘贴”命令按钮有效第26页,共105页,2023年,2月20日,星期二图8-43例8-10运行的结果4)“粘贴”命令按钮Command2的Click事件的代码如下:

Thisform.Edit1.SelText=_CLIPTEXT

&&将剪贴板内容粘贴到编辑框

Thisform.Edit1.SetFocus &&编辑框获得焦点(4)以“剪贴板.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-43所示。第27页,共105页,2023年,2月20日,星期二【例8-11】创建如图8-44所示的修改表的简历字段的表单。要求如下:1)在文本框中输入要修改记录的职工号,若该职工号存在,即显示其姓名和简历,此时“修改简历”按钮有效;若该职工号不存在,即弹出提示框,要求重新输入。2)单击“修改简历”命令按钮,则光标移入编辑框。3)按下“确认退出”命令按钮,则关闭表单。(1)设计界面新建一个表单,在表单上添加1个标签Label1,1个文本辑框Text1和2个命令按钮Command1和Command2。(2)创建字段映像1)打开“数据环境设计器”窗口,添加Zgjk.dbf表。2)用鼠标将“数据环境设计器”窗口中的“姓名”字段拖放到表单上,生成2个字段映像控件:标签“lbl.姓名”和文本框“txt.姓名”;将“简历”字段拖放到表单上,生成2个字段映像控件:标签“lbl.简历”和编辑框“edt.简历”。第28页,共105页,2023年,2月20日,星期二

表8-22对象属性值的设置(2)设置对象属性对象属性属性值说明Form1Caption修改简历Label1Caption输入职工号:Command1Caption修改简历Command2Caption确认退出第29页,共105页,2023年,2月20日,星期二(3)编写事件代码1)表单Form1的Init事件的代码如下:GoBottSkip &&将指针移出记录,使运行初始界面无数据Thisform.edt.简历.Enabled=.F.&&简历编辑框失效Thisform.Command1.Enabled=.F.&&“修改简历”按钮失效2)文本框Text1的InteractivateChange事件的代码如下:LocateFOR职工号=ALLTRIM(This.Value)IFFOUND()

Thisform.edt.简历.Enabled=.F. &&简历编辑框有效

Thisform.Command1.Enabled=.T. &&“修改简历”按钮有效ELSE

MESSAGEBOX("输入的职工号不存在,请重新输入!")

This.Value="" &&清空输入职工号文本框

This.SetFocus &&输入职工号文本框获得焦点ENDIFThisform.Refresh &&刷新表单第30页,共105页,2023年,2月20日,星期二图8-44“修改简历”表单运行的结果3)“确认退出”命令按钮Command2的Click事件代码如下:ThisForm.Release &&释放表单

(5)以“修改简历.SCX”为文件名保存表单。(6)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-44所示。

第31页,共105页,2023年,2月20日,星期二列表框(List)与组合框(Combo)

都是提供选择一个或多个输入项的列表,二者之间又存在如下区别:(1)列表框显示全部选项列表;组合框只显示一条选项,单击右端下拉按钮,才显示全部选项列表。(2)组合框又分为下拉组合框和下拉列表框,前者允许输入数据,后者与列表框一样仅有选取功能。

1.列表框与组合框常用属性列表框与组合框的常用属性见表8-23。

§8.3.5列表框与组合框

第32页,共105页,2023年,2月20日,星期二属性作用ColumnCount指定列表框或组合框中的列数ControlSource指定存储列表框或组合框选定项的数据绑定字段DisplayValue指定列表框或组合框中所选定项第一列的内容ListCount返回列表框或组合框中列表项的个数ListIndex返回列表框或组合框中选定项的序号List(i,j)返回列表框或组合框第i行第j列的值MultiSelect指定是否允许多重选择(0或.F.[缺省值]—不允许,1或.T.—允许)RowSourceType指定列表框或组合框数据源的类型(共9类,见表8-24)RowSource指定列表框或组合框的数据源Selected(i)若i行被选中,则返回.T.;否则返回.F.Style指定组合框的类型:0—下拉组合框,2—下拉列表框Value返回列表框或组合框中的选定项(若为数值型,则返回被选定项的序号;若为字符型,则返回被选定项的本身内容。对于多列列表框,则返回由BoundCount属性指定的列的数据项)表8-23列表框与组合框的常用属性第33页,共105页,2023年,2月20日,星期二RowSourceTypeRowSource在控件中显示0-无(默认值)在程序中用AddItem()添加条目用RemoveItem()移去条目1-值RowSource=one,two,three,fourone,two,three,fou2-别名RowSource的表由数据环境提供显示字段数目由olumnCount确定3-SQL语句RowSource="select*FROMzgINTOCURSORtemp"SQL语句执行的结果(记录)4-查询RowSource=查询文件名.qpr查询文件执行的结果(记录),列数由ColumnCount确定5-数组RowSource=数组名数组元素的值6-字段RowSource=字段名字段的值7-文件例如:RowSource=*.dbf以目录与文件名填充8-结构RowSource的表由数据环境提供表的全部字段名9-弹出式菜单RowSource="弹出式菜单名"菜单选项2.RowSourceType与RowSource属性(见下表)第34页,共105页,2023年,2月20日,星期二

3.列表框与组合框常用方法(1)AddItem:当组合框或列表框的RowSourceType属性值为0时,可使用此方法在列表中添加一条新选项。(2)RemoveItem:当组合框或列表框的RowSourceType属性值为0时,可使用此方法删除列表中一条选项。

(3)Clear:清除列表框中所有选项。

4.列表框与组合框常用事件(1)InteractivateChange:列表框或组合框的值发生改变时引发。(2)Click:单击列表框或组合框时引发。

5.列表框和组合框生成器使用生成器可方便地设置列表框和组合框的属性。第35页,共105页,2023年,2月20日,星期二

【例8-12】设计一个如图8-51所示的表单,用于选拔职工参加演讲比赛。在组合框中显示职工简况表中所有职工的姓名,单击“添加”按钮,将其添加到列表框中;单击“删除”按钮,则移去列表框中被选中的职工姓名;单击“全部清除”按钮,则清除列表框中所有的职工姓名。(1)设计界面创建表单,并在表单上添加两个标签Label1和Label2,一个组合框Combo1,一个列表框List1,三个命令按钮Command1、Command2和Command3。第36页,共105页,2023年,2月20日,星期二(2)设置对象属性对

象属

性属

值说

明Form1Caption选拔职工Label1Caption请选择职工姓名Label2Caption被选中职工姓名列表Combo1RowsourceTypeRowsource

6-字段

zgjk.姓名字段Command1Caption添加Command2Caption删除Command3Caption全部清除第37页,共105页,2023年,2月20日,星期二(3)编写事件代码

1)命令按钮Command1的Click事件的代码如下:IfEmpty(Thisform.Combo1.Value) &&若组合框为空,则什么都不做

ReturnEndifFori=1toThisform.List1.Listcount &&历遍列表框的所有选项

IfThisform.Combo1.Value=Thisform.List1.List(i)

&&若组合框中的选项已存在于列表框,则提示

Messagebox("已存在该列表项")ReturnEndifEndforThisform.List1.Additem(Thisform.Combo1.Value)

&&将组合框内容添加到列表框Thisform.Combo1.Value="" &&清空组合框Thisform.Combo1.Setfocus &&组合框获得焦点第38页,共105页,2023年,2月20日,星期二2)命令按钮Command2的Click事件的代码如下:IfThisform.List1.Listindex>0&&若列表框有选中项,则删除

Thisform.List1.Removeitem(Thisform.List1.Listindex)EndifThisform.List1.Listindex=Thisform.List1.Listcount

&&将末项设为选中项3)命令按钮Command3的Click事件的代码如下:Thisform.List1.Clear

&&清空列表框(4)以“选拔职工.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-51所示。

图8-51例L8-13运行的结果

第39页,共105页,2023年,2月20日,星期二【例8-13】设计一个如图8-52所示表单,用于浏览职工销售业绩。在组合框中选定职工号,即在列表框中显示该职工的销售业绩信息,包括:姓名、销售数量、商品编号、商品名称、规格型号和单价。

(1)设计界面

创建表单,并在表单上添加三个标签Label1、Label2和Label3,一个组合框Combo1和一个列表框List1。

(2)设置对象属性(

如下页表所示)。第40页,共105页,2023年,2月20日,星期二对

象属

性属性值说

明Label1CaptionAutoSizeFontSizeFontBold职工销售业绩20.T..T.自动大小字号加粗Label2Caption请选择职工号Label3Caption姓名

销售数量

商品编号

商品名称

规格型号

单价Combo1RowSourceTypeRowSource6-字段Zgjk.职工号字段List1RowSourceTypeColumnCount36SQL语句列数第41页,共105页,2023年,2月20日,星期二(3)编写事件代码

组合框Combo1的InteractivateChange事件代码如下:

Thisform.List1.Rowsource=;"SelectZgjk.姓名,Xs.销售数量,Sp.商品编号,Sp.商品名称,Sp.规格型号,;Sp.单价FromZgjk,Xs,Sp;WhereSp.商品编号=Xs.商品编号AND;Zgjk.职工号=Xs.职工号ANDZgjk.职工号=This.Value; IntoCursortemptable“

&&从3个表选择符合条件的记录放入临时表,作为list1的数据源

Thisform.Refresh &&刷新表单第42页,共105页,2023年,2月20日,星期二(4)以“浏览销售业绩.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-52所示。图8-52例8-13运行的结果

第43页,共105页,2023年,2月20日,星期二命令按钮(Commmand)常用于启动事件,以执行某项操作,如关闭表单、移动记录指针等。

1.命令按钮常用属性(见下表)§8.3.6命令按钮属性作用Caption按钮标题,若含“\<字符”,则该字符成为热键Default为.T.时,按回车键执行该命令按钮Click事件(缺省值为.F.)Cancel为.T.时,按ESC键执行该命令按钮Click事件(缺省值为.F.)Enable指定是否响应用户引发的事件(.T.(缺省值)—响应,.F.—不响应)Visible指定对象可见或隐藏(缺省值为.T.)

2.命令按钮常用方法(1)Click(2)RightClick第44页,共105页,2023年,2月20日,星期二3.应用举例【例8-14】创建一个如图8-53所示的表单。若单击“表单背景色”命令按钮,则随机地改变表单背景的颜色;若单击“标签前景色”命令按钮,则随机地改变标题的颜色。操作步骤如下:(1)设计界面1)打开“表单设计器”窗口,并创建一个空白表单。2)在表单上创建1个标签控件Label1与2个命令按钮

Command1和Command2。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值,见表8-28第45页,共105页,2023年,2月20日,星期二对象属性名属性值说明Form1Caption随机改变颜色Label1CaptionAutoSizeFontNameFontSizeBackStyle职工管理系统.T.华文新魏360自动大小字体字号透明Command1CaptionAutoSize表单背景色.T.自动大小Command2CaptionAutoSize标签前景色.T.自动大小表8-28对象属性值的设置(3)编写事件代码1)命令按钮Command1的Click事件代码如下:a=INT(RAND()*255) &&随机函数RAND()产生不大于1的随机数b=INT(RAND()*255)c=INT(RAND()*255)Thisform.BackColor=RGB(a,b,c)第46页,共105页,2023年,2月20日,星期二2)命令按钮Command2的Click事件代码如下:a=INT(RAND()*255)b=INT(RAND()*255)c=INT(RAND()*255)Thisform.Label1.ForeColor=RGB(a,b,c)(4)保存表单以“随机改变颜色.scx”为文件名,保存表单。表8-53随机改变颜色(5)运行表单单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-53所示。第47页,共105页,2023年,2月20日,星期二命令按钮组(CommmandGroup)是包含若干个命令按钮的容器。命令按钮组和组内各命令按钮都有各自的属性、方法和事件。

1.命令按钮组常用属性(见下表)§8.3.7命令按钮组属性功能ButtonCount设置组容器所包含的命令按钮数Value为1(默认值)时,单击组控件内某命令按钮,将返回此命令按钮的序号;值为“空”时,单击组控件内某命令按钮,将返回此命令按钮的Caption属性第48页,共105页,2023年,2月20日,星期二2.命令按钮组中命令按钮的编辑要编辑命令按钮组中的命令按钮,必须先激活组容器。激活组容器有如下两种方法:(1)右击命令按钮组,在弹出的快捷菜单中选择“编辑”命令。组容器被激活后,呈现绿色斜线边框。(2)在“属性”窗口中,选定组容器内的对象,即进入编辑态。推而广之,容器类的对象,如命令按钮组、选项按钮组、表格、页框等,若要编辑其中的对象,都先激活它们,使其进入编辑状态。3.命令按钮组常用事件Click:单击命令按钮组中的按钮时引发第49页,共105页,2023年,2月20日,星期二4.应用举例【例8-15】创建简单加减计算器,如图8-54所示。该计算器的功能如下:

1)单击按钮,则清空文本框中的内容;2)单击正负号、数字和小数点按钮,将在文本框中输入相应的内容;3)单击按钮,将计算的结果显示于文本框内。操作步骤如下:

(1)设计界面创建表单,并在表单上添加一个文本框Text1和命令按钮组CommandGroup1。第50页,共105页,2023年,2月20日,星期二对

象属

性属

值属

值Form1Caption加减计算器Command-Group1ButtonCountValue15=""组中的按钮数目返回命令按钮Caption属性值Command1~Command15Caption1,2,3,4,5,6,7,8,9,0,.,+,-,=,C等号用全角字符,其它皆用半角字符Text1AlignmentValue1无字符右对齐字符型(2)设置对象属性第51页,共105页,2023年,2月20日,星期二(3)编写事件代码

命令按钮组CommandGroup1的Click事件的代码如下:IfThisForm.Commandgroup1.Value<>“=”AND;ThisForm.Commandgroup1.Value<>"C"ThisForm.Text1.Value=;ThisForm.Text1.Value+ThisForm.Commandgroup1.ValueEndifIfThisForm.Commandgroup1.Value="="S=ThisForm.Text1.ValueThisForm.Text1.Value=&S&&将字符型内存变量S的内容宏替换出来放入文本框EndifIfThisForm.Commandgroup1.Value="C"ThisForm.Text1.Value=""&&清空文本框EndifThisform.Refresh &&刷新表单第52页,共105页,2023年,2月20日,星期二图8-54简单加减计算器(4)保存表单以“加减计算器.SCX”为文件名保存表单。(5)执行表单单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-54所示。第53页,共105页,2023年,2月20日,星期二复选框(CheckBox)由一个方框和标题说明组成,用于标记一个两值状态:为真(.T.)状态,为假(.F.)状态。用户可选择若干个复选框中的一个或多个。

1.复选框常用属性(见下表)§8.3.8复选框属性说明Caption指定显示在复选框旁的标题文字Value设置或返回复选框当前状态(0或.F.(缺省值)—未被选中,1或.T.—选定,2或.NULL.—禁用(灰色显示))ControlSource指定复选框的数据源,通常与逻辑型字段绑定Style指定复选框的显示风格(0(缺省值)—标准样式,1—图形样式)第54页,共105页,2023年,2月20日,星期二

2.复选框常用事件(1)Click:单击复选框时引发。(2)InteractivateChange:复选框值发生改变时引发。

【例8-16】设计一个表单,用于分别统计男女职工的人数和基本工资总额。若选中复选框,则统计男职工的人数和基本工资总额;否则统计女职工的人数和基本工资总额。操作步骤如下:(1)设计界面创建表单,并在表单上添加3个标签Label1、Label2和Label3,一个复选框Check1,两个文本框Text、Text2和一个命令按钮Command1。第55页,共105页,2023年,2月20日,星期二对

象属

性属性值说明Label1CaptionAutoSizeFontSizeFontBold统计男女职工人数和基本工资总额.T.14.T.自动大小字号加粗Check1CaptionValue性别(选中为男,否则为女)0数值型Command1Caption统计(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值,见表8-32。第56页,共105页,2023年,2月20日,星期二(3)编写事件代码命令按钮Command1的Click事件代码如下:DimensionX(2) &&定义数组Chx=ThisForm.Check1.Value &&复选框的值为0或1Sex=Iif(chx=0,“女”,“男”)

&&若chx=0,则Sex="女";否则Sex="男SelectCount(*),SUM(基本工资)FromZgjkWhere性别=SexIntoArrayXThisform.Label2.Caption=Sex+"职工人数"Thisform.Label3.Caption=Sex+"职工基本工资总额"Thisform.Text1.value=X(1)Thisform.Text2.value=X(2)Thisform.Refresh &&刷新表单(4)以“统计男女职工人数.SCX”为文件名保存表单。第57页,共105页,2023年,2月20日,星期二(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-55所示。图8-55表单运行的结果第58页,共105页,2023年,2月20日,星期二

【例8-17】设计一个如图8-56所示的表单,用于显示不同字体、字号和字型的示例文字。操作步骤如下:(1)设计界面创建表单,并在表单上添加3个标签Label1、Label2和Label3,3个复选框Check1和2个组合框Combo1和Combo2。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值,见表8-33。第59页,共105页,2023年,2月20日,星期二对象属性名属性值说明Label1CaptionAlignmentAutoSize示例文字2.T.中央自动大小Label2Caption字体Label3Caption字号Check1Caption粗体Check2Caption下划线Check3Caption斜体Combo1RowSourceTypeRowSource1宋体,仿宋,黑体,楷体_GB2312,隶书,幼圆值Combo2RowSourceTypeRowSource112,16,24,28,36值第60页,共105页,2023年,2月20日,星期二(3)编写事件代码1)复选框Check1的Click事件代码如下:IFThis.Value=1Thisform.Label1.FontBold=.T.ELSEThisform.Label1.FontBold=.F.ENDIF2)复选框Check2的Click事件代码如下:IFThis.Value=1Thisform.Label1.FontUnderline=.T.ELSEThisform.Label1.FontUnderline=.F.ENDIF第61页,共105页,2023年,2月20日,星期二3)复选框Check3的Click事件代码如下:IFThis.Value=1Thisform.Label1.FontItalic=.T.ELSEThisform.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=;Thisform.Width/2-Thisform.Label1.Width/2 &&Label1居中第62页,共105页,2023年,2月20日,星期二(4)以“字体示例.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-56所示。图8-56“字体示例”表单运行的结果第63页,共105页,2023年,2月20日,星期二

选项按钮组(OptionGroup)是包含选项按钮的容器。其特点是按钮组中只能一个选项按钮被选中。

1.选项按钮组常用属性选项按钮组常用属性见下表:§8.3.9选项按钮组属性说明ButtonCount指定选项按钮的数目Buttons为选项按钮组的数组名ControlSource指定选项按钮组的数据源Value若为数值型(缺省值),则返回被选中按钮的序号;若为字符型,则返回被选中按钮的Caption属性值第64页,共105页,2023年,2月20日,星期二

2.选项按钮组常用事件(1)Click:单击选项按钮时引发。(2)InteractivateChange:选项按钮组发生改变时引发。【例8-18】设计一个如图8-57所示表单,实现按部门统计职工的人数。操作步骤如下:(1)设计界面创建一个表单,并在表单上添加一个选项组、一个文本框和两个标签,如图8-57所示。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值见下表。第65页,共105页,2023年,2月20日,星期二对象属性名属性值说明Form1Caption统计各部门人数Label2Caption人Text1BackStylBorderStylValue000透明无边框数值型OptionGroup1ButtonCountValue3无按钮数目返回选中选项按钮标题Option1Caption家电Option2Caption服装Option3Caption文具第66页,共105页,2023年,2月20日,星期二(3)编写事件代码选项按钮组OptionGroup1的Click事件代码如下:SelectCount(*)FromZgjk;Where部门=This.ValueIntoArrayX &&统计部门人数,并将结果放入内存变量xThisform.Text1.Value=X(1) &&将数组的值写入文本框Thisform.Label1.Caption=This.Value+"部门共有" &&Value的值为"家电"、"服装"或"文具"图8-57表单运行的结果(4)以“L8-16.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-57所示。第67页,共105页,2023年,2月20日,星期二【例88-19】设计一个分类查询表单,其功能是:能够分别按人事、工资和销售查询本单位职工某方面信息

。操作步骤如下:(1)设计界面在表单上创建1个标签、选项按钮组、表格和命令按钮,如图8-58所示。(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值见下表。第68页,共105页,2023年,2月20日,星期二对象属性名属性值说明Form1CaptionAutoCenter职工各项信息查询.T.自动居中Label1CaptionAlignmentAutoSizeForeColorFontNameFontSize职工各项信息查询0.T.255,0,0隶书28居中对齐自动大小红色字符字体字号OptionGroup1ButtonCountOptionGroup1.Option1.CaptionOptionGroup1.Option2.CaptionOptionGroup1.Option3.CaptionValue3查询职工简况查询工资信息查询销售业绩1按钮数目数值型Grid1RecordSourceType4SQL语句Command1Caption退出第69页,共105页,2023年,2月20日,星期二(3)编写事件代码选项按钮组的Click事件代码如下:DoCaseCaseThisform.OptionGroup1.Value=1Thisform.Grid1.RecordSource=;"SELECT*FROMZgjkINTOCURSORTMP"CaseThisform.OptionGroup1.Value=2Thisform.Grid1.RecordSource=;"SELECT*FROM职工业绩!View_gzINTOCURSORTMP" &&View_gz为工资信息视图

CaseThisform.OptionGroup1.Value=3Thisform.Grid1.RecordSource=;"SELECT*FROM职工业绩!View_xs2INTOCURSORTMP" &&View_xs2为销售业绩视图EndcaseThisform.Refresh第70页,共105页,2023年,2月20日,星期二2)“退出”命令按钮Command1的Click事件代码如下:CloseallTableThisform.Release(4)保存表单以“职工信息分类查询.scx”为名称保存表单。(5)运行表单表单运行效果如图8-58所示图8-58职工信息分类查询表单第71页,共105页,2023年,2月20日,星期二微调控件(Spinner)用于接受给定范围内的数值输入。它既可以用键盘直接输入,也可以用鼠标单击该控件的上下箭头按钮来增减当前值。微调控件可以与数值型变量和字段绑定

1.计时器常用属性(见下表)§8.3.10微调控件

属性作用ControlSource指定微调控件的数据源Increment设定按一次箭头按钮的增减数。默认值为1.00KeyBoardHighValue设定键盘输入数值的上限KeyBoardLowValue设定键盘输入数值的下限SpinnerHighValue设定按钮微调数值的上限SpinnerLowValue设定按钮微调数值的下限Value表示微调控件当前值第72页,共105页,2023年,2月20日,星期二2.选项按钮组常用事件(1)InteractivateChange:微调控件值发生改变时引发。(2)DownClick:单击向下箭头按钮时引发。(3)UpClick:单击向上箭头按钮时引发。3.应用举例【例8-20】设计一个图8-59所示表单,要求如下:改变3个微调控件的值,然后单击“更新”按钮,则改变形状控件的颜色和形状;若3个微调控件的值分别为255、0、0,形状控件为红色的正方形;若3个微调控件的值分别为0、0、255,形状控件为蓝色的圆形。(1)设计界面创建一个表单,并在表单上添加1个形状控件Shape1、3个微调控件Spinner1、Spinner2和Spinner3,1个命令按钮Command1,如图8-59所示。第73页,共105页,2023年,2月20日,星期二对象属性属性值说明Label1Caption红Label2Caption绿Label3Caption蓝Spinner1KeyBoardHighValueKeyBoardLowValueSpinnerHighValueSpinnerLowValue25502550键盘输入数值的上限键盘输入数值的下限按钮微调数值的上限按钮微调数值的下限Spinner2KeyBoardHighValueKeyBoardLowValueSpinnerHighValueSpinnerLowValue25502550Spinner3KeyBoardHighValueKeyBoardLowValueSpinnerHighValueSpinnerLowValue25502550Command1Caption更新(2)设置对象属性设置各对象的属性见下表。第74页,共105页,2023年,2月20日,星期二(3)编写事件代码命令按钮Command1的Click事件代码如下:R=Thisform.Spinner1.ValueG=Thisform.Spinner2.ValueB=Thisform.Spinner3.ValueThisform.Shape1.Curvature=(R+G+B)/3/255*99Thisform.Shape1.BackColor=RGB(R,G,B)IfR=255andG=0andB=0Thisform.Shape1.Curvature=0 &&形状控件为正方形

Thisform.Shape1.BackColor=RGB(R,G,B)EndifIfR=0andG=0andB=255Thisform.Shape1.Curvature=99 &&形状控件为蓝色的圆形

Thisform.Shape1.BackColor=RGB(R,G,B)ENDIFThisform.refresh

第75页,共105页,2023年,2月20日,星期二图8-59例8-20运行的结果(4)以“形色更新.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-59所示。第76页,共105页,2023年,2月20日,星期二

计时器(Timer)控件像一个闹钟,它以一定的时间间隔重复执行某种操作。当达到规定的时间间隔时,系统自动触发Timer事件。

在表单设计的过程中,计时器控件可见;表单运行时,计时器控件自动隐藏。

1.计时器常用属性(见下表)§8.3.11计时器属性说明Interval用于设置计时间隔,单位是ms,当值为0时,不产生Timer事件Enabled.T.—表单加载时,计时器即开始计时;.F.—计时器不计时

2.计时器常用事件

Timer:达到Interval设置计时间隔即触发。

第77页,共105页,2023年,2月20日,星期二分析:使用计时器控件Timer,将该控件的Interval属性设置为500,即每0.5秒触发一次计时器控件的Timer事件(显示一次系统时间);将计时器控件的Interval属性设置为0将停止触发Timer事件。操作步骤如下:

(1)设计界面创建一个表单,并在表单上添加两个标签Label1,Label2;三命令按钮Command1,Command2,Command3和一个计时器控件Timer1。【例8-21】设计一个如图8-60所示的表单,具体要求如下:

1)表单名为Timer,表单标题为“时钟”,表单运行时自动显示系统的当前时间;

2)要求显示时间的标签控件Label1在表单中居中,标签文本对齐方式为居中;

3)单击“暂停”命令按钮(Command1)时,时钟停止;

4)单击“继续”命令按钮(Command2)时,时钟继续显示系统的当前时间;

5)单击“退出”命令按钮(Command3)时,关闭表单。第78页,共105页,2023年,2月20日,星期二对

象属

名属

值说

明Form1NameCaptionTimer时钟Label1CaptionFontSizeAutoSize现在时间是:16.T.-真字号自动大小Label2AlignmentFontSizeAutoSize2-中央16.T.-真中央Timer1IntervalEnabled500.T.计时间隔的单位为ms有效Command1

Caption

暂停Command2

Caption

继续Command3

Caption

退出(2)设置对象属性在“属性”窗口中,分别设置各对象的属性值见下表。第79页,共105页,2023年,2月20日,星期二(3)编写事件代码

1)双击“暂停”按钮,打开代码编辑窗口,输入Click事件代码如下:

Thisform.Timer1.Interval=0

2)双击“继续”按钮,打开代码编辑窗口,输入Click事件代码如下:

Thisform.Timer1.Interval=500

3)双击“退出”按钮,打开代码编辑窗口,输入Click事件代码如下:

Thisform.Release

4)双击计时器控件timer1,打开代码编辑窗口,输入timer事件代码如下:

Thisform.Label2.Caption=Time()图8-60“时钟”表单运行的结果(4)以“时钟.SCX”为文件名保存表单。(5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图8-60所示。

第80页,共105页,2023年,2月20日,星期二

1.容器的特性容器(Container)可包含除表单和表单集之外多个不同类型的对象。要向容器中添加对象,必须先激活容器。具体操作方法是:右击容器,在弹出的快捷菜单中选择“编辑”命令,使容器处于编辑状态,此时添加的对象才会到容器中。如果没有激活容器而添加对象,实际上对象是添加到表单上而不是容器中。推而广之,容器类的对象,若要编辑其中的对象,都先激活它们,使其进入编辑状态。

2.容器常用属性容器对象常用属性见下表:§8.3.12容器属

性说明SpecialEffect指定容器三维形状(0—凸起,1—凹下,2(缺省值)—平面)Enable指定是否响应用户引发的事件(.T.(缺省值)—响应,.F.—不响应)Visible指定容器内对象是否可见(.T.(缺省值)—可见,.F.—不可见)第81页,共105页,2023年,2月20日,星期二【例8-23】设计一个文件名为“水位变化.scx”的表单,运行界面如图8-63所示,要求如下:1)新建表单Form1,标题为“水位变化”,运行时在屏幕居中;2)添加一个容器控件Container1,其height属性值为100,Width属性值为96,背景色为白色,即RGB(255,255,255);3)添加一个属于容器控件的矩形形状控件Shape1,其height属性值为50,Width属性值为96,背景色为蓝色,即RGB(0,0,255);4)添加一个标签控件Label1,标题为“水位高度”,大小自适应;5)添加一个微调控件Spinner1,微调的最大值和最小值均为100和1(含鼠标和键盘输入),初始值为50;6)编写微调控件的事件代码,实现水位变化。操作步骤如下:(1)设计界面创建一个表单,并在表单上添加如图8-63所示的控件。第82页,共105页,2023年,2月20日,星期二(2)设置对象属性对

象属

性属

值说

明Form1CaptionAutoCenter水位变化.T.居中Container1HeightWidthBackColor10096255,255,255容器的高容器的宽白色Shape1HeightWidthCurvatureBackColor509600,0,255形状的高形状的宽矩形蓝色Label1CaptionAutoSize水位高度.T.自动大小Spinner1KeyboardHighValueKeyboardLowValueSpinnerHighValueSpinnerLowValueValue1001100.001.0050键盘输入上限键盘输入下限微调上限微调下限初始值第83页,共105页,2023年,2月20日,星期二(3)编

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论