




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 表 单,概 述,表单是Visual FoxPro 6.0 应用程序和用户之间进行数据交换和人机对话的界面,也有人把它称为屏幕(screen)或窗口,是Visual FoxPro 的基本单位。,概 述,空表单类(父类),带有退出按 钮的表单类,带有退出按钮 组的表单类,一个个具体的表单 (含命令按钮组),一个个具体的表单 (含退出按钮),(子类层),(对象层),9.1.1 表单的概念,表单是用户与计算机进行交流的一种屏幕界面,用于数据的显示、输入、修改。该界面可以自行设计和定义,是一种容器类,可包括多个控件(或称对象)。 表单设计器是Visual FoxPro是一种可视化工具,是由事件驱
2、动进入真正的面向对象的设计方法。,9.1.2面向对象程序设计概述,面向对象程序设计是被结构化了的结构化程序设计。 1.类的概念 类是面向对象程序设计技术的核心,类定义了对象特征以及对象外观和行为的模板。 2.基类 系统本身提供的类称为基类。基类包括容器类和控件类。,9.1.2面向对象程序设计概述,3.容器类 容器类可以包含其他对象的类。 4.控件类 控件类相对于容器类而言,封装得更完全。 5.对象 是类的一个实例,包括了数据和过程。 6.属性 属性类似于变量,用于保存对象的信息,所以属性也具有类似变量的数据类型设置。,9.1.2面向对象程序设计概述,7. 事件 每个对象都能识别和响应特定动作,
3、这些动作被称为事件。 8.方法 方法(Method)是与对象相关的过程,但又不同于一般的Visual FoxPro过程。方法程序紧密地和对象连接在一起,并且与一般Visual FoxPro过程调用方式也有所不同。,9.2 表单的创建,在面向对象的程序设计中,两个最基本的可视对象类型是容器类和控件类 表单本身就是一个容器,它可以容纳多个控件。,9.2 创建表单,生成表单的方法有三种: (1)使用向导创建表单。 (2)使用表单设计器创建表单。 (3)使用命令方式创建表单,9.2.1 使用向导设计表单,在Visual FoxPro 系统中,可以使用表单向导创建表单。 表单向导创建的只能是数据表单。,
4、9.2.1 用表单向导创建表单,表单向导根据数据表来源的不同,又分为“单表表单”、“一对多表表单”的表单向导。,9.2.1 用表单向导创建表单,操作步骤: 1)打开“文件”菜单,选择“新建”,进入“新建”对话框。 2)在“新建”对话框中,选择“表单”,再单击“向导”按钮,进入“向导选取”对话框。,9.2.1 用表单向导创建表单,3)在“向导选取”对话框中,选择“表单向 导”,进入“表单向导”各分步骤对话框。,9.2.1 用表单向导创建表单,4)在“步骤1”对话框中,选择作为数据资源 的表,在选择可用字段。,9.2.1 用表单向导创建表单,5)在“步骤2”对话框中,选择表单样式,再 选择表单中的
5、按钮样式。,9.2.1 用表单向导创建表单,6)在“步骤3”对话框中,选择指定字段确定 记录的输出顺序。,9.2.1 用表单向导创建表单,7)在“步骤4”对话框中,输入表单标题,再 选择表单保存方式,再单击“完成”按钮, 保存表单并结束操作。,9.2.1 用表单向导创建表单,预览:,9.2.2使用表单设计器创建表单,操作步骤: 1、打开“文件”菜单,选择“新建”,进入“新 建”对话框。 2、在“新建”对话框中,选择“表单”,再单击“新建文件”按钮,进入“表单设计器”窗口。,9.2.2使用表单设计器创建表单,3、打开“显示”菜单,选择“表单控件工具 栏”,弹出“表单控件工具栏”对话框, 可以为表
6、单添加控件。 4、打开“显示”菜单,选择“属性”,进入 “属性”窗口,定义表单及控件的属性。,9.2.2使用表单设计器创建表单,5、打开“显示”菜单,选择“代码编辑”窗口,定义表单及控件的事件和方法。 6、打开“文件”菜单,选择“保存”,保存表单。,表单设计器窗口,表单设计器窗口,“Form1”表单:是表单设计的基本界面,用户可以在该空表单上按自己的需要添加各种控件。,表单设计器窗口,“表单控件”工具栏提供了Visual FoxPro 6.0 中所有基本控件,可以设计出功能强大的应用程序。 控件:是组成Windows界面的最主要成分,比如按钮、文本框、微调框等。,表单设计器窗口,表单设计器窗口
7、,“属性”窗口提供了控件、字段或数据库对象的特性,用户可以对其进行设置,定义对象的特征或某方面的行为。,表单设计器窗口,属性:控件、字段或数据库对象的特性。可以对其进行设置,定义对象的特征或某一方面的行为。可以用“属性”窗口修改一个对象的属性,表单设计器窗口,表单设计器工具栏:用于打开和设置表单的环境和工具。,表单设计器窗口,设置Tab键次序:表单中的对象可以通 过按Tab键把“控制权”从这一个切换到 下一个,该按钮就是用于设置其切换顺序。,表单设计器窗口,数据环境:用于显示“数据环境设计器” 属性窗口:先是一个反映当前对象设置值 的窗口。即显示(或隐藏) “属性窗口”,表单设计器窗口,代码窗
8、口:先是当前对象的“代码”窗口, 以便查看和编辑代码。 表单控件工具栏:显示或隐藏表单控件工 具栏。,表单设计器窗口,调色板工具栏:显示或隐藏布局工具栏。 布局工具栏:显示或隐藏布局工具栏,表单设计器窗口,表单生成器:运行“表单生成器”,它能 为用户提供一种简单、交互的方法把字 段作为控件添加到表单上,并可以定义 表单的样式和布局,表单设计器窗口,自动格式:运行“自动格式生成器”,它为 用户提供一种简单、交互的方法为选定控 件应用格式化样式。要使用此按钮应先选 定一个或多个控件。,用命令方式创建表单,命令格式: CREATE FORM 命令功能: 创建一个以为名的表单。 注: 表单扩展名为.s
9、cx,表单常用属性,表单是一个窗口,因此窗口有一些外部特征,体现在: 1)Caption:标题 2)Top:上边界与容器上边界的距离 3)Left:左边界与容器左边界的距离,表单常用属性,4)Height:高度 5)Width:宽度 6)Icon:窗口图标,表单常用属性,7)Backcolor:背景颜色 8)Picture:背景图片 9)Autocenter:在容器中是否自动居中,9.3 表单控件,在Visual FoxPro 系统中,可以使用22个基本的可视表单控件来构造表单,可利用表单设计器中向已有的表单添加控件。,表单的事件,常用的表单事件有: (1)Load事件:当表单被装入内存时发生
10、。 (2)Init事件:当表单被初始化时发生。 (3)Activate事件:当表单被激活时发生。 以上事件被激发的顺序为:Load、Init、Activate。 (4)Destroy事件:当表单被释放时发生。 (5)Unload事件:当表单被关闭时发生。 以上事件被激发的顺序为:Unload、Destroy。 (6)Resize事件:当用户或程序去改变表单的大小时发生。,表单的方法,常用的表单方法有: (1)Hide方法:隐藏表单。 (2)Show方法:显示表单。 (3)Release方法:释放表单。 (4)Refresh方法:刷新表单。,补充:添加控件,操作步骤: 1)单击要使用的工具按钮
11、2)把鼠标指针移动表单中适当位置,单击 左键。这样就可以将选中的控件加入到表单中去了。,1 标签控件,标签是用以显示文本的图形控件。 常用标签属性: 1.Caption属性:指定标签的标题文本。标题文本显示在屏幕上以帮助使用者识别个对象。 2.Alignment属性:指定标题文本在控件中显示的的对齐方式。,2 .命令按钮控件,命令按钮典型的用来启动某个事件代码、完成特定功能,如:关闭表单、移动记录指针、打印报表等。,2. 命令按钮控件,1、Default属性和Canel属性 Default属性值为一个.T.的命令按钮称为“确认”按钮,Default属性默认值为.F. 一个表单内只能有一个“确认
12、”按钮 Canel属性值为.T.的命令按钮成为“取消”按钮。,2. 命令按钮控件,2、Enabled属性 指定表单或控件能否相应由用户引发的事件。默认值为.T.,即对象是有效的,能被选择,能响应用户引发的事件。,2. 命令按钮控件,3、Visual属性 指定对象是可见还是隐藏。 在表单设计器中,默认值为.T.,即对象是可见的; 在程序代码中,默认值为.F.,即对象是隐藏的,对象的引用 对象的引用是指如何在程序设计和程序运行的时候对这些对象进行控制和操作。 表单对象的引用分绝对引用和相对引用两种。,(1)绝对引用 通过提供对象的完整容器层次代码来引用对象的方法称为绝对引用。 一般形式:ThisF
13、orm. 例如: ThisForm.Command1.Caption ThisForm.Text1.value,(2)相对引用 用快捷方式指明要引用的对象的方式称为相对引用。即对当前选定对象的引用。 其一般形式:This. 例如:设当前选定对象为命令按钮Command1。 其相对引用:This.Caption 例如:设当前选定对象为文本框Texet1。 其相对引用:This.Value,在对象事件的程序代码中,对象的引用作为命令一部分,如赋值命令、分支结构等。例如:,(1)要使表单中的命令按钮Command1的标题属性(Caption)设为“关闭”,则命令代码(赋值命令): ThisForm.
14、Command1.Caption = 关闭 (2)设当前选定对象为命令按钮Command1,将该对象的标题属性(Caption)设为“关闭”: This.Caption = 关闭 (3)在分支结构中,对对象属性进行判断。例如: If This.caption=“关闭 Else Endif,例9-1,设计步骤如下:,(1) 建立应用程序界面 选择“新建”表单,进入表单设计器, 添加两个命令按钮(Command1和 Command2)。 (2) 设置对象属性 将两个按钮的“Caption”属性分别改为“欢迎”和“关闭”。“标签”对象Labe11的属性改为:标题(Caption)改为:空,字体(Fo
15、nt)改为“黑体”,字体大小(FontSize)改为20。 (3) 编写程序代码,Command1的事件(单击)代码: if this.caption = 欢迎 thisform.label1.caption=欢 迎 使 用+chr(13)+chr(13)+ Visual FoxPro this.caption = 清除 else thisform.label1.caption= this.caption = 欢迎 endif Command2的事件(单击)代码: Release ThisForm,3 文本框控件,用户利用文本框控件在内存变量、数组元素或非备注型字段中输入或编辑数据。 1.Co
16、ntrolSource属性:利用该属性为文本框指定一个字段或内存变量 2.Value属性:返回文本框当前内容,3 文本框控件,3.PasswordChar属性:指定文本框控件内是显示用户输入的字符还是显示占位符; 4.InputMask属性:指定在一个文本框中如何输入和显示数据。,例9-2题目要求参考教材,设计步骤为:,(1) 建立应用程序界面 (2) 设置对象属性 (3) 编写程序代码 r=thisform.text1.value thisform.text2.value = r*r*3.14 Text1的Valid事件代码: this.tabindex = 2 mand1.tabindex
17、 = 3,属性:,属性:,设计表单,3 文本框控件,例题:密码输入设计(密码正确可以进入,如连续三次输入错误便退出) 功能介绍: 在文本框中输入密码,如果正确则显示“可以进入系统”,输入不正确则显示“密码错,请重新输入!”,应重新输入密码。如连续输入三次都出错,系统显示“非法用户!”随后退出执行过程。,3 文本框控件,设计步骤:,(1)打开表单设计器 单击“文件”菜单,选择“新建”命令,在“新建”对话框中选择文件类型“表单”,单击【新建文件】按钮,出现“表单设计器”窗口。 (2)添加表单控件 使用“表单控件”工具栏,在表单上添加1个标签对象Labell、1个文本框对象Text1、两个命令按钮对
18、象Command l和Command 2。,设计步骤:,(3)设置对象属性 设置表单标题:在“属性窗口”中,选择对象并设置其属性,单击“”按钮或按【Enter】键。 (4)编写程序代码 Form1的Load事件代码:(Load事件是当表单被装入内存时发生) Public i i=0,Command1的单击(Click)事件代码: set exact on i=i+1 if i3 MessageBox(您输入超出3次,系统将关闭!) thisform.release else if thisform.text1.value=1234 MessageBox(密码正确,欢迎进入本系统!) thisf
19、orm.release else MessageBox(密码错误,请重新输入!) thisform.text1.value= Endif endif,人机对话函数MessageBox(),格式:messagebox(), 功能:在屏幕上显示一个指定格式的对话框。在对话框中显示信息,等待用户单击按钮,并返回一个整数以标明用户单击了哪个按钮。 其中:是由+三组代码组成。,按钮类型,图标类型,默认按钮,Command2的单击(Click)事件代码: release thisform (5)保存表单文件 单击“文件”菜单,选择“保存”命令,或按【Ctrl+S】键;在“另存为”对话框中,在“存在表单为”
20、文本框中输入密码 ,产生默认目录的文件名密码.SCX。,4.编辑框控件,与文本框相似,也用来输入、编辑数据 编辑框特点: 1)编辑框实际上是一个完整的字处理器,利用它能够选择、剪切、粘贴以及复制正文;可以实现自动换行;能够有自己的垂直滚动条;可以用箭头键在文件里面移动光标,4.编辑框控件,2)编辑框只能输入、编辑字符型数据,包括 字符型内存变量、数组元素、字段以及备 注型字段里的内容。,4.编辑框控件,4.编辑框控件,命令按钮的click事件代码: THISFORM.TEXT1.VALUE=THISFORM.EDIT1. VALUE THISFORM.REFRESH,5 组合框控件,组合框与列
21、表框相类似,是用于提供一组条目供用户从中选择 注意: 1)对于组合框来说,通常只有一个条目可见,用户可以单击组合框中的下箭头按钮打开条目列表 2)组合框不提供多重选择的功能,5 组合框控件,5 组合框控件,组合框属性通过生成器设置,数据表选择D:VFPts.dbf,字段选择可用字段中图书编号字段。 Command1的事件代码 单击(Click)事件: LOCATE ALL FOR THISFORM.COMBO1.VALUE=TS.图书编号 THISFORM.LABEL1.CAPTION=TS.图书名称 THISFORM.REFRESH,6 计时器控件,计时器控件只要是利用系统时钟来控制某些具有
22、规律性、周期性任务定时操作。,7 选项按钮组控件,包含选项按钮的一种容器。一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当用户选择某个选项按钮时,该按钮即成为被选中状态,而选项中的其他选项按钮,不管原来是什么状态,都变为未选中状态。被选中的选项按钮中会显示一个圆点,8 复选框控件,一个复选框用于标记一个两值状态。当为“.T.”状态时,复选框中显示一个对勾;否则,复选框内显示为空白。,例9-6建立一个表单,要求对“中国劳动人民万岁!”进行相关设置,如图所示。,设计步骤为:,(1)建立应用程序界面 选择“新建”表单,进入表单设计器,表单上创建一个标签控件、命令按钮组控件和两个复选
23、框控件。如上图所示。 (2)设置对象属性 标签的的Caption设置为“中国劳动人民万岁!”,AutoSize属性设置为.T.; 选项按钮1的Caption设置为“红”;选项按钮2的Caption设置为“绿”;复选框1的Caption设置为“粗体”;复选框2的Caption设置为“斜体”。,(3)程序代码,Option1的Click事件代码: thisform.label1.forecolor=rgb(255,0,0) Option2的Click事件代码: thisform.label1.forecolor=rgb(0,255,0) Check1的Click事件代码: thisform.lab
24、el1.FontBold=thisform.check1.value Check2的Click事件代码: thisform.label1.fontItalic=thisform.check2.value,例题:选项按钮组的使用,例题:选项按钮组的使用,例题:选项按钮组的使用,Timer1的Timer事件代码: If thisform.label1.fontsize=9 thisform.label1.fontsize=thisform.label1.fontsize-1 else thisform.label1.fontsize=26 Endif Option1的Click事件代码: this
25、erval=200 Option2的Click事件代码: erval=0 Option3的Click事件代码: release thisform,9 页框控件,页框是包含页面(Page)的容器对象,而页面本身也是一种容器,其中可以包含所需要的控件。,9 页框控件,利用页面、页框和相应的控件可以构建我们熟悉的选项卡对话框。这种对话框包含若干选项卡,其中的选项卡就对应着这里面所说的页面。,9 页框控件,计算圆的面积中command1的代码: pi=3.14159 r=thisform.pageframe1.page1.text1.
26、value thisform.pageframe1.page1.text2.value=pi*r2,10 微调控件,“微调”控件是用来控制数值型数据的使用范围,以及在规定范围内的调整、选择数据。 利用“微调”控件框可输入一个数据,或通过(Up、Down)按钮选择一个数据。,10 微调控件,设计一个表单SL81_4.SCX,要求:通过微调控件对形状曲率进行调整,产生相应的图形。,10 微调控件,10 微调控件,编写程序代码 Spinner1的Interactivechange事件代码(更改微调控件值): thisform.shape1.curvature=this.value,11 表格控件,表
27、格是一种容器对象,按行和列的形式显示数据。 一个表格对象由若干个列(Column)对象组成,没个列对象包含一个标头对象(Header)和若干控件。,11 表格控件,表格编辑状态下,调整列高的方法: 1)将鼠标指针指于表格左侧的第一个按钮 和第二个按钮之间,这时,鼠标指针变 成垂直双箭头形状。 2)拖动鼠标、调整行置所需高度,11 表格控件,表格编辑状态下,调整列宽的方法: 1)将鼠标指针指于两表格列的标头之间, 这时,鼠标指针变成水平双箭头形状。 2)拖动鼠标、调整列置所需宽度,12 命令按钮组控件,命令按钮组控件是包含一组命令按钮的容器控件,用户可以单个或作为一组来操作器中的按钮,例9-9
28、设计一个“图书信息维护”表单,如下图所示。,设计步骤为:,(1) 建立应用程序界面 选择“新建”表单,进入表单设计器,添加一个命令按钮组Commandgroup1,添加一个标签label1,在数据环境中添加TS.DBF(如下页图),并将字段拖到表单中(如下图所示),再设置相应的标签。,(2) 设置对象属性 通过生成器设置命令按钮组,使其含有七个命令按扭;设置标签label1的caption属性。 (3)编写程序代码: Form1的Init事件代码: Go bottom Skip 1 Thisform.Refresh,Command1的单击(Click)事件代码: Go Top Thisform
29、. Commandgroup1.Command1.Enabled=.f. Thisform. Commandgroup1.Command3.Enabled=.f. Thisform. Commandgroup1.Command4.Enabled=.t. Thisform. Commandgroup1.Command2.Enabled=.t. Thisform.Refresh,Command2的单击(Click)事件代码: Go bottom This. Enabled=.f. Thisform. Commandgroup1.Command4.Enabled=.f. Thisform. Comm
30、andgroup1.Command1.Enabled=.t. Thisform. Commandgroup1.Command3.Enabled=.t. Thisform.Refresh,Command3的单击(Click)事件代码: Skip -1 If recno()=1 This.Enabled=.f. Thisform. Commandgroup1.Command1.Enabled=.f. Thisform. Commandgroup1.Command2.Enabled=.t. Thisform. Commandgroup1.Command4.Enabled=.t. Else This.
31、Enabled=.t. Thisform. Commandgroup1.Command1.Enabled=.t. Thisform. Commandgroup1.Command2.Enabled=.t. Thisform. Commandgroup1.Command4.Enabled=.t. endif Thisform.Refresh,Command4的单击(Click)事件代码: Skip 1 If recno()=reccount() This.Enabled=.f. Thisform. Commandgroup1.Command2.Enabled=.f. Thisform. Commandgroup1.Command1.Enabled=.t. Thisform. Commandgroup1.Command3.Enabled=.t. Else This
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产30000吨葡萄糖酸盐系列食品添加剂项目可行性研究报告写作模板-备案审批
- 中国刀的历史演变
- 中国写意人物画课件
- 公文写作关于公报课件
- 提高情商的课程培训
- 中国传统节日春节课件
- 舞蹈艺考培训
- 肿瘤科特色服务护理总结
- 肝性脑病健康宣教
- 早教知识培训
- 富士康职工档案管理制度
- 7数沪科版期末考试卷-2024-2025学年七年级(初一)数学下册期末考试模拟卷04
- 胃管置入术考试题及答案
- 2025年全国统一高考英语试卷(全国一卷)含答案
- 郑州大学cad期末考试试题及答案
- 2025年内蒙古高考物理试卷(含答案)
- 2025年美术教师编制考试模拟试卷:美术教育心理学在课堂管理中的应用试题
- 保利大剧院面试题及答案
- 吉林省吉林市名校2025年七下英语期末考试模拟试题含答案
- 2025届福建省厦门市名校数学七下期末质量检测试题含解析
- 北京社工考试题及答案
评论
0/150
提交评论