福建工程学院《面向对象程序设计》.ppt_第1页
福建工程学院《面向对象程序设计》.ppt_第2页
福建工程学院《面向对象程序设计》.ppt_第3页
福建工程学院《面向对象程序设计》.ppt_第4页
福建工程学院《面向对象程序设计》.ppt_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

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.7命令按钮组 8.3.8复选框 8.3.9选项按钮组 8.3.10计时器 8.3.11容器 8.3.12表格 8.3.13页框 8.3.14表单集,8.3表单控件设计,1控件分类 VFP“表单控件”工具栏上有21个基类控件,按功能可分成以下5类: (1)输出类:标签、图像、线条、形状。 (2)输入类:文本框、编辑框、微调控件、列表框、组合框。 (3)控制类:命令按钮、命令按钮组、复

2、选框、选项按钮组、计时器。 (4)容器类:表格、页框、Contain容器、表单集。 (5)连接类:ActiveX控件、ActiveX挷定控件、超级链接控件。 2各类控件的缺省名称 各类控件的缺省名称见表810。,1标签控件的作用 标签控件常用于显示说明信息和对象的标题。 2标签常用属性 标签的常用属性见下:,8.3.1标签(Label),【例87】在表单上创建3个标签,只要鼠标单击任何一个标签,则其他两个标签的标题互换。 (1)设计界面 1)打开“表单设计器”窗口,并创建一个空白表单。 2)在表单上创建3个标签控件Label1、Label2和Label3。 (2)设置对象属性,(3)编写事件代

3、码 1)标签控件Label1的Click事件代码如下: t=Thisform.Label2.Caption Select Zgjk.姓名,Xs.销售数量,Sp.商品编号,Sp.商品名称,Sp.规格型号,Sp.单价; From Zgjk,Xs,Sp; Where Sp.商品编号=Xs.商品编号 AND Zgjk.职工号=Xs.职工号 AND Zgjk.职工号=This.Value ; Into Cursor temptable Where 部门=This.Value Into Array X&统计部门人数,并将结果放入内存变量x Thisform.Text1.Value=X(1)&将数组的值写入

4、文本框 Thisform.Label1.Caption=This.Value+部门共有 &Value的值为家电、服装或文具,图858例816运行的结果,(4)以“L8-16.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图858所示。,计时器控件(Timer)像一个闹钟,它以一定的时间间隔重复执行某种操作。当达到规定的时间间隔时,系统自动触发Timer事件。 在表单设计的过程中,计时器控件可见;表单运行时,计时器控件自动隐藏。 1计时器常用属性(见下表) 2计时器常用事件 Timer:达到Interval设置计时间隔即触发。,8.3.10 计时器(Time

5、r),(2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值见下表。,分析:使用计时器控件Timer,将该控件的Interval属性设置为500,即每0.5秒触发一次计时器控件的Timer事件(显示一次系统时间);将计时器控件的Interval属性设置为0将停止触发Timer事件。 操作步骤如下: (1)设计界面 创建一个表单,并在表单上添加两个标签Label1,Label2;三命令按钮Command1,Command2,Command3和一个计时器控件Timer1。,【例817】设计一个如图859所示的表单,具体要求如下: 1)表单名为Timer,表单标题为“时钟”,表单运行时自动显示

6、系统的当前时间; 2)要求显示时间的标签控件Label1在表单中居中,标签文本对齐方式为居中; 3)单击“暂停”命令按钮(Command1)时,时钟停止; 4)单击“继续”命令按钮(Command2)时,时钟继续显示系统的当前时间; 5)单击“退出”命令按钮(Command3)时,关闭表单。,(3)编写事件代码 1)双击“暂停”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Timer1.Interval=0 2)双击“继续”按钮,打开代码编辑窗口,输入Click事件代码如下: Thisform.Timer1.Interval=500 3)双击“退出”按钮,打开代码编辑

7、窗口,输入Click事件代码如下: Thisform.Release 4)双击计时器控件timer1,打开代码编辑窗口,输入timer事件代码如下: Thisform.Label2.Caption=Time(),图860例817运行的结果,(4)以“L8-17.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图860所示。,1容器的特性 容器可包含表单和表单集之外多个不同类型的对象。 要向容器中添加对象,必须先激活容器。具体操作方法是:右击容器,在弹出的快捷菜单中选择“编辑”命令,使容器处于编辑状态,此时添加的对象才会到容器中。如果没有激活容器而添加对象,实

8、际上对象是添加到表单上而不是容器中。推而广之,容器类的对象,若要编辑其中的对象,都先激活它们,使其进入编辑状态。 2容器常用属性 容器对象常用属性见下表:,8.3.11容器(Container),【例818】建立如图861所示的表单,用于调查职工的情况。单击“统计”按钮,将该职工的情况显示于编辑框中。 操作步骤如下: (1)设计界面 创建一个表单,并在表单上添加如图861所示的控件。其中“爱好”的3个复选框(“体育”、“音乐”和“美术”)是置于容器Container1中。 (2)设置对象属性 在“属性”窗口中,分别设置各对象的属性值,见表838。,2)命令按钮Command1的Click事件代

9、码如下: str1=姓名:+Alltrim(Thisform.Text1.value) &累加连接姓名字符串 str1=str1+,性别:+Alltrim(Thisform.OptionGroup1.Value) &累加连接性别字符串 str1=str1+,年龄:+Str(Thisform.Spinner1.value,3)&累加连接年龄字符串 With Thisform.Container1&可用WithEndwith语句设置多个属性值 If .Check1.Value=1 or .Check2.Value=1 or .Check3.Value=1 str1=str1+,爱好: Endif

10、If .Check1.Value=1&体育 str1=str1+.Check1.Caption+、 Endif If .Check2.Value=1&音乐 str1=str1+.Check2.Caption+、 Endif If .Check3.Value=1&美术 str1=str1+.Check3.Caption+、 Endif Endwith Thisform.Edit1.Value=Left(str1,Len(str1)-2)+。 &删除最后一个顿号,并添加句号,(3)编写事件代码 1)文本框Text1的Valid事件代码如下: If Empty(This.Value)&姓名不能为空

11、Return .F. Endif,(3)编写事件代码 1)文本框Text1的Valid事件代码如下: If Empty(This.Value)&姓名不能为空 Return .F. Endif,图861例818运行的结果,(4)以“L8-18.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图861所示。,表格是一种按行与列显示数据的容器对象,其外观与Browse窗口相似。表格是一种多重容器,一个表格由若干个列对象(Colunm)组成,每个列对象包含一个列标头对象(Header)和若干个列控件。表格、列、列标头和列控件都有属于自己的属性、事件和方法。 1表格的

12、组成 (1)表格(Grid):容器对象,由若干个列对象组成。 (2)列(Colunm):也是容器对象,由列标头和列控件组成。 (3)列标头(Header):默认值为数据库表、自由表和视图中的字段名或字段标题。 (4)列控件:默认值为文本框(Text1),允许修改为与该控件字段类型相容的其他控件。例如:逻辑型字段可用复选框,数值型字段可用微调控件。,8.3.12表格(Grid),2创建表格对象 在设计过程中,一般先在表单上创建一个表格,然后再用“表格生成器”设置属性,从而得到所需的表格。 3表格的编辑 (1)改变列数 (2)增删表格列 (3)调整表格的行高或列宽 1)通过属性窗口调整行高或列宽

13、2)手工调整行高或列宽 4表格的常用属性 表格的常用属性见下表:,5列的常用属性 (见下表),【例819】设计一个表单,用于浏览职工和销售业绩。表单上包含两个表格,一个表格显示职工的职工号和姓名,另一个表格显示该职工的销售情况。,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个标签Label1。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf和销售表Xs.dbf。 3)分别将“数据环境”窗口中的职工简况表Zgjk.dbf和销售表Xs.dbf的标题拖放到表单上,生成表格对象GrdZgjk和GrdXs。 (2)设置对象属性(见下表),(3)以“L8-19.SCX”为

14、文件名保存表单。 (4)单击“常用”工具栏中的“运行”按钮,表单运行结果如下图所示。,鼠标单击左表格中任意一个职工,右表格即显示该职工的销售情况,从而实现两表同步浏览。,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个标签Label1和一个组合框Combo1。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf和销售表Xs.dbf。 3)分别将“数据环境”窗口中的销售表Xs.dbf的标题拖放到表单上,生成表格对象GrdXs。,【例820】设计一个如图866所示的表单,用于浏览职工和销售业绩。表单上包含一个组合框和一个表格。在组合框中选择一个职工的姓名,即在表格中显示

15、该职工的销售情况(包括职工号、商品编号和销售数量)。,图864“表格生成器”的“表格项”选项卡,(2)设置对象属性 1)使用“生成器”设置对象的属性 右击表格,在弹出的快捷菜单中选择“生成器”命令,打开“表格生成器”对话框“表格项”选项卡,在“数据库和表”的列表框中,选择销售表Xs.dbf,将销售表的字段全部添加到“选定字段”列表框中,如图864所示。,在“表格生成器”中,选择“关系”选项卡,按“职工号”字段,设置Zgjk和Xs的一对多联系,当前表格Xs.dbf为子表,Zgjk.dbf为父表,如图865所示。,图865“表格生成器”的“关系”选项卡,2)设置对象属性(见下表),(3)以“L8-

16、20.SCX”为文件名保存表单。 (4)单击“常用”工具栏中的“运行”按钮,表单运行结果如图866所示。,图866例820运行的结果,页框(PageFrame)是包含页面(Page)的容器,每个页面在页框中均以选项卡的形式出现。页面是类似于表单的容器,可以包含与表单一样的对象。 1页框的创建 (1)在“表单设计器”中,单击“表单控件”工具栏中的“页框”按钮,然后在表单上单击或拖动,即创建一个含默认的2个页面(Page1和Page2)的页框(PageFrame1)。 (2)向页面添加控件 1)右击页框,在弹出的快捷菜单中选择“编辑”命令,使页框处于编辑状态。 2)单击要添加控件的页面的标签,使之

17、成为活动页面。 3)在“表单控件”工具栏中单击所需的控件按钮,然后单击页面,将其添加到活动页面上。 2页框常用属性(见表844),8.3.13页框(Pageframe),(3)以“L8-21.SCX”为文件名保存表单。 (4)单击“常用”工具栏中的“运行”按钮,表单运行结果如图868所示。,(2)设置对象属性(见下表),图868例821运行的结果,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个页框Pageframe1,该页框上包含默认的两个页面Page1和Page2。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf和销售表Xs.dbf。 3)激活页框。即右击容

18、器,在弹出的快捷菜单中选择“编辑”命令,使容器处于编辑状态。 4)选择页面Page1,将“数据环境”窗口中的职工简况表Zgjk.dbf的标题拖放到Page1上;选择页面Page2,将“数据环境”窗口中的销售表Xs.dbf的标题拖放到Page2上。,【例821】设计一个如图868所示的表单,分别用于浏览职工简况和销售业绩。表单上有一个包含两个页面的页框。第1页面中的表格显示职工简况信息,第2页面中的表格显示职工销售业绩。,【例822】设计一个包含两个选项卡的表单,用于查询职工的信息,如图869所示。第1选项卡为“条件”选项卡,用于设置出生日期;第2选项卡为“输出”选项卡,用于设置输出的字段。单击

19、表单上“确认”按钮,将根据在两个选项卡中所设置的参数查询职工的记录数据;单击表单上“取消”按钮,则关闭对话框。,图869“查询”对话框“条件”选项卡,操作步骤如下: (1)设计界面 1)创建一个表单,并在表单上添加一个页框Pageframe1和两个命令按钮Command1和Command2,该页框上包含默认的两个页面Page1和Page2。 2)打开“数据环境”窗口,并添加职工简况表Zgjk.dbf。 3)激活页框,选择页面Page1;或者在“属性”窗口的对象框中,选择页面Page1。在其中添加1个选项按钮组、2个标签和4个文本框。 4)选择页面Page2,在其中添加2个列表框、2个标签和2个

20、命令按钮。 (2)设置对象属性(见下表),(3)编写事件代码 1)Page1中“所有学生”选项按钮Option1的Click事件的代码如下: * This.parent.parent即Thisform.Pageframe1.Page1 This.parent.parent.Text1.Enabled=.F. &该文本框失效 This.parent.parent.Text2.Enabled=.F. This.parent.parent.Text3.Enabled=.F. This.parent.parent.Text4.Enabled=.F. 2)Page1中“在之前”选项按钮Option2的C

21、lick事件的代码如下: This.parent.parent.Text1.Enabled=.T. &该文本框有效 This.parent.parent.Text2.Enabled=.F. This.parent.parent.Text3.Enabled=.F. This.parent.parent.Text4.Enabled=.F.,3)Page1中“在之后”选项按钮Option3的Click事件的代码如下: This.parent.parent.Text1.Enabled=.F. This.parent.parent.Text2.Enabled=.T. This.parent.parent

22、.Text3.Enabled=.F. This.parent.parent.Text4.Enabled=.F. 4)Page1中“在之间”选项按钮Option4的Click事件的代码如下: This.parent.parent.Text1.Enabled=.F. This.parent.parent.Text2.Enabled=.F. This.parent.parent.Text3.Enabled=.T. This.parent.parent.Text4.Enabled=.T.,5)Page2中“添加”命令按钮的Click事件的代码如下: FOR i=1 to This.parent.Lis

23、t1.ListCount &历遍列表框List1中所有选项 IF This.parent.List1.Selected(i) &若列表框中第i个选项被选中 This.parent.List2.AddItem(This.parent.List1.List(i) &将选中对象添加到右边的列表框List2中 ENDIF ENDFOR 6)Page2中“移去”命令按钮的Click事件的代码如下: FOR i=1 to This.parent.List2.ListCount IF This.parent.List2.Selected(i) This.parent.List2.RemoveItem(i)

24、&将选中对象移去 ENDIF ENDFOR,6)Page2中“移去”命令按钮的Click事件的代码如下: FOR i=1 to This.parent.List2.ListCount IF This.parent.List2.Selected(i) This.parent.List2.RemoveItem(i) &将选中对象移去 ENDIF ENDFOR,7)Form1中“确认”命令按钮Command2的Click事件的代码如下: *以下程序段生成SELECT-SQL语句的条件表达式的字符串 *即where 子句中的条件 cond= .AND.出生日期CTOD(ThisForm.Pagefra

25、me1.Page1.Text4.Value) ENDCASE,*以下程序段生成SELECT-SQL语句的查询结果输出项字符串 *即select 子句中的 items= IF ThisForm.Pageframe1.Page2.List2.ListCount=0 items=*&List2为空,则默认全部字段 ELSE FOR i=1 to ThisForm.Pageframe1.Page2.List2.ListCount items=items+ThisForm.Pageframe1.Page2.List2.List(i)+, ENDFOR items=substr(items,1,LEN(i

26、tems)-1) &删除最后一个逗号 ENDIF IF cond= SELECT &items FROM Zgjk &宏替换出查询结果输出项 ELSE SELECT &items FROM Zgjk WHERE &cond &宏替换出输出项和条件 ENDIF,图870“查询”对话框“输出”选项卡,8)Form1中“取消”命令按钮Command1的Click事件的代码如下: ThisForm.Release&释放表单 (4)以“L8-22.SCX”为文件名保存表单。 (5)单击“常用”工具栏中的“运行”按钮,表单运行结果如图869和图870所示。,表单集(Formset)是包含一个或若干个表单(

27、Form)的容器。 1表单集的特点 (1)可以同时显示或隐藏表单集中的全部表单。 (2)以可视化的方式调整表单的大小和位置。 (3)表单集及其所包含的表单都存放在一个.SCX文件中。 (4)表单集中的表单共享一个数据环境。 (5)运行表单时,它所包含的表单都被加载。 2表单集的基本操作 表单集的创建与删除和其他对象的创建与删除不同。在“表单控件”工具栏中没有表单集控件,表单集的创建与删除是使用“表单”菜单中相应的命令来实现的。而表单菜单只有在打开“表单设计器”后才出现。,8.3.14表单集(Formset),(1)创建表单集 1)创建或打开一个将包含于表单集中的表单,如表单Form1。 2)选

28、择“表单”菜单中的“创建表单集”命令,即创建了一个表单集Formset1。在“属性”窗口的“对象框”中,可看到表单Form1处于表单集Formset1的下一层。 (2)向表单集添加表单 选择“表单”菜单中的“添加新表单”命令,即向表单集Formset1添加一个新表单Form2。所添加的是新表单,而不是已存在的表单。 (3)删除表单集中的表单 1)选定要删除的表单。 2)选择“表单”菜单中的“移除表单”命令。 (4)删除表单集 当表单集中只剩余一个表单时,表单集才可以被删除。此时,选择“表单”菜单中的“移除表单集”命令,即删除表单集。表单集删除后表单仍存在。,(5)运行表单集 运行表单集与运行表

29、单的方法一样。 (6)释放表单集 1)使用命令:Release ThisFormset 2)表单集随着最后一个表单的释放而自动释放,此时表单集的AutoRelease属性值为.T.。 【例823】创建一个含有两个子表单的表单集,要求如下: 1)将子表单的标题分别命名为“左表单”和“右表单”。 2)分别向两个子表单添加一个标签和一个命令按钮,并向左表单添加一个“退出”命令按钮和计时器控件。 3)将左表单中的命令按钮的标题设置为“显示右表单”,将右表单中的命令按钮的标题设置为“隐藏右表单”,如图871所示。 4)用代码将子表单的窗口设置为固定大小,最大化和最小化按钮均为无效。,图871表单集,5)运行时只显示左表单,单击“显示右表单”按钮,则显示右表单。 6)在左表单的标签控件中,以12小时制显示系统时间;在右表单的标签控件中,以24小时制显示系统时间。,操作步骤如下: (1

温馨提示

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

评论

0/150

提交评论