7表单.docx
《7表单.docx》由会员分享,可在线阅读,更多相关《7表单.docx(18页珍藏版)》请在冰豆网上搜索。
![7表单.docx](https://file1.bdocx.com/fileroot1/2022-11/16/18db210a-9b02-4357-8296-49a29a2d71f8/18db210a-9b02-4357-8296-49a29a2d71f81.gif)
7表单
7.1面向对象程序设计方法
引入面向对象程序设计方法:
●面向过程:
面向数据处理过程来编制程序,是一种线性程序
缺点:
(1)界面很难像视窗操作系统那样漂亮
(2)程序在执行中独占资源,难于实现多任务操作
●面向对象:
将现实世界的问题尽可能简单化,采用符合人类处理问题的思维方式。
用“对象”表现事物,用“事件”表示处理事物的动作,用“方法”表现处理事物的过程。
采用“事件驱动”的编程机制。
一.类和对象的概念:
●类(抽象):
一组具有公共的方法和一般性的对象的描述。
是对象的原型。
类的特点:
(1)继承性
(2)封装性(3)多态性
类的类型:
(1)容器类
(2)控件类
类和对象的关系:
对象就是符合某种类定义所产生出来的实例。
类是个抽象的称呼,而对象是个具体的实例。
●对象(具体):
客观存在的实体。
对象具有以下特点:
(1)具有属性。
每个属性有个默认值,可以修改默认值,来设置属性。
当创建一个对象并且选定该对象时,属性窗口就能显示它的所有可以设置的属性。
设计、运行时都能对属性进行设置。
不同的对象属性不尽相同。
(2)具有此对象可以识别的事件,并能对事件进行识别和响应。
通过对对象的此事件编制相应的程序或使用系统提供的方法程序。
使对象执行此程序段来对事件进行反应。
(3)方法程序:
是VFP系统为对象制作的通用过程,能使对象在事件发生时执行一个操作。
只要会引用过来就可以了。
二.事件驱动机制:
(1)什么是事件驱动机制?
传统的过程化程序:
程序的执行顺序是程序设计时确定下来的。
面向对象的程序设计:
以对象为中心,对象响应事件,事件驱动一个过程。
事件驱动方式的基本概念:
当程序运行时始终处于等待某个事件的发生状态,一旦某个事件发生,系统马上执行相应的过程或方法程序。
执行结束后,又处于等待状态,等待某个事件的发生。
(2)事件的发生顺序:
用户的一个动作会引发很多事件,所以需要了解事件的发生顺序。
运行表单时:
表单LOAD→控件INIT→表单INIT
释放表单时:
表单DESTROY→控件DESTROY→表单UNLOAD
7.2表单的建立
引入:
设计一个应用程序的好坏,给用户的第一印象既不是程序代码的好坏,也不是运行效率的高低,而是用户界面是否友好
VFP面向对象的可视化的程序设计方法使应用程序的界面设计变得简单。
表单、菜单、报表都体现了这种设计思想。
表单是应用程序中最常见的界面,它可以为数据库信息的显示、输入及编辑提供非常简单的方法。
一.表单的创建
菜单方式:
文件→新建→表单→新建表单
命令方式:
MODIFORM<表单文件名>
弹出表单设计器,开始设计表单。
二.表单设计器工具栏介绍:
A:
控件工具栏:
控件是表单中最重要的组成部分,控件工具栏用于向表单窗口内添加相应的控件,是最重要的工具栏之一。
B:
属性工具栏:
用于设置表单中控件的相关属性,是最重要的工具栏之一。
C:
数据环境设计器:
用于帮助用户设置当前表单中需要访问的数据库与表的信息。
D:
布局工具栏:
用于对表单中各控件进行排列与对齐操作。
注意:
工具栏的打开方法:
建立表单文件后,默认地会打开属性与表单控件工具栏,如果没有打开可通过“显示”菜单找到相应的工具栏。
三.表单的存储(扩展名是.SCX)
方法一:
关闭或者运行表单时系统会提示保存文件
方法二:
在表单打开状态下,文件→另存为
四.表单的运行
方法一:
直接运行:
表单文件打开时,单击常用工具栏上的运行按钮
。
方法二:
程序中运行:
DOFORM<表单文件名>
五.表单的修改
命令方式:
MODIFORM<表单文件名>
7.3表单控件建立
一.简单表单实例:
做如上表单,表单文件名为校训.scx,效果为:
当单击表单中的文字时,文字内容变为:
厚德博学善思致用
制作步骤:
1.给表单文件中的表单Form1设置属性。
2.在表单控件中找到标签,添加到表单中,设置其属性。
3.设置事件代码实现:
单击标签,标签文字发生变化。
即label1的caption属性的值改为“厚德博学善思致用”。
当对对象(标签即label1)实施事件(单击即click)时,对象通过执行click()事件的代码来响应。
click()事件代码为:
thisform.label1.caption=’厚德博学善思致用’
或者this.caption=’厚德博学善思致用’
二.从实例中学到:
1.表单常用属性:
属性
含义
Caption
标题(默认form1,可改)
Name
名字(默认form1,一般不改)
height
高度
width
宽度
Backcolor
背景色
BorderStyle
边框类型
AutoCenter
是否在中间
MaxButton
是否有最大化按钮
Minbutton
是否有最小化按钮
Movable
是否能移动
WindowState
窗口运行时状态
2.对象的常用事件:
事件
含义
load
对象加载(装入)到内存时
unload
关闭对象时
init
创建(初始化)对象时
destroy
释放对象时
click
单击对象时
dblclick
双击对象时
rightclick
右击对象时
mousedown
按下鼠标键时
mouseup
鼠标弹起时
interactivechange
以交互方式改变对象值
3.标签(LABEL)
LABEL1,LABEL2……用来显示提示信息。
常见属性:
(1)Name属性与Caption属性:
Name属性:
用于标识对象的名称,如果其它对象或代码要对该对象进行访问,可通过Name属性中标识的名称实现对其访问。
Caption属性:
用于设置在对象中显示的内容。
属性值为字符型
每个对象都有Name属性,而如果该对象也同时有Caption属性时,其Caption属性与Name属性的默认值是相同的,设置时注意区分。
(2)Height/Width与Left/Top
Height/Width用于设置某个对象的高度和宽度
Left/Top用于设置某个对象距离其父对象边缘左边和上方的距离。
(3)Font系列属性:
该系列属性用于设置对象内文本的字体、字型、字号、颜色等属性。
如fontboldfontsize
(4)Forecolor/Backcolor属性:
Forecolor属性用于设置前景色。
Backcolor属性用于设置背景色。
(5)其它属性:
alignment:
对象的文字的排列方式autosize:
对象是否自动调整大小Backstyle:
背景的形式
4.对象的引用:
在面向对象的程序设计中,常常需要引用对象或引用对象的属性,事件和方法。
(1)绝对引用:
引用地址是从最外层容器算起直到目标对象。
如:
thisform.label1.caption=’厚德博学善思致用’
(当前表单.标签1.标题属性=属性值)
(2)相对引用
thisformset表示包含该对象的表单集thisfrom表示包含该对象的表单
this表示当前对象parent表示该对象的直接容器
如:
this.caption=’厚德博学善思致用’
(当前对象.标题属性=属性值)
三.对实例的变形:
实例变形为:
当单击标签的时候文字并没有变化,单击“确定”按钮时,文字变为“厚德博学善思致用”
单击“关闭”按钮时,关闭当前表单。
步骤:
1.在表单控件中找到按钮,添加到表单中,设置其属性caption为“确定”。
2.编写按钮command1即确定按钮的click代码。
因为是对command1实施单击事件,command1来识别和响应事件的,响应的代码是让label1的标签文字变化。
Command1的click事件的代码为:
thisform.label1.caption=’厚德博学善思致用’
思考:
如果Command1的click事件代码写成this.caption=’厚德博学善思致用’,后果是什么?
四.从变形的实例中学到:
1.命令按钮(COMMAND)
command1,command2……
(1)命令按钮上的文字由caption属性决定。
(2)fontsize,fontbold,forecolor……
对于命令按钮主要是编写其代码,实现功能。
总结:
(1)属性不仅可以在属性窗口中修改,也可以在程序中修改。
(2)属性可以在设计阶段修改,也可以在运行阶段修改。
(3)属性既可以在编辑状态设置,又可在属性窗口设置。
2.表单常见的方法程序:
释放表单(Release)刷新表单(Refresh)显示表单(Show)隐藏表单(Hide)
引用方法:
thisform.release
3.控件分类及名称记忆:
容器类:
容器
名称
表单
Form
表格
Grid
页框
Pageframe
页面
Page
选项按钮组
Optiongroup
命令按钮组
commandgroup
控件类:
控件
名称
标签
Label
文本框
Text
命令按钮
Command
计时器
Timer
编辑框
Edit
列表框
List
复选框
Check
组合框
Combo
图像
Image
微调
Spinner
五.实例教学
1.
通过本实例学习到:
文本框(TEXT)
TEXT1,TEXT2……
(1)name属性。
文本框没有caption属性
(2)value属性:
运行表单时,文本框中输入或显示的内容存放在value属性中。
A.如果刚运行表单时,文本框中就有内容显示,需要在设计阶段给文本框的value属性赋值为要显示的内容。
B.如果刚运行时文本框中没有内容,而后由用户输入内容。
用户输入的内容即为value属性的值。
C.运行的过程中希望文本框显示什么内容只要通过代码把文本框的value赋值成什么即可。
关于文本框中value的数据类型:
A.在设计阶段的属性窗口中直接输入的非数字字符为字符型,数字字符为数值型。
逻辑型,日期型和日期时间型按常量方式输入即可。
B.在运行时,文本框中输入的任意数据都是字符型。
C.在代码中,可以接收各种类型的数据。
(3)Passwordchar属性:
当用户运行表单时,在文本框中输入数据时,不显示输入的内容,只显示此属性指定的符号,如‘*’.输入的数据同样会存储在value属性中。
(通常用于密码的输入)
(4)controlsource属性:
该属性用于设置对象的数据源,通常设置成表的某个字段或变量,用于显示字段或变量的值。
(5)readonly只读属性ennable是否可用visibble是否可见maxlength允许输入的最大字符数
2.
3.
4.
5.
6.
选项按扭组(optiongroup)包含若干选项的容器,用户用的时候选择其中的一个。
Optiongroup1,optiongroup2……
(1)每个选项按钮组里有若干个选项,如optiongroup1里有option1,option2……,选项的个数由buttoncount决定
(2)选中optiongroup1,右击点编辑,可以选中其中的小的选项。
(3)当运行表单时用户选择了某项时,value值里就存储了这个序号
(4)