VFP-表单设计基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
14
6.2.3 容器类和控件类
VFP中的类分为两种:பைடு நூலகம்器类(container classes)与控件类 (control classes),可分别生成容器(对象)和控件(对象)。
容器:可容纳其他对象,并允许访问所包含 的对象。 容器(如表单)自身是一个对象,可以把按钮、 编辑框、文本框等包含在其中。 常用容器及 对象见P181-表6.2 控件:不能容纳其他对象。当将一个控件对 象放入容器中, 编程时引用该对象时有两种方法。
15
6.2.4 自定义类的创建与使用
将表单和控件保存为类 1)【文件】|【另存为类】命令,打开“另存为类”对话框. 2) 在“另存为类”对话框中选择“当前表单”或“选定 控件。在“类名”框中输入类的名称,在“文件”框中输入保 存类的文件名(类库名)。
16
创建自定义类(P252) 用命令方式创建类 命令格式:create class <类名> 或 create class <类名> of <类库名> 通过编程创建类 define class <类名> as <父类名> 功能:创建一个新类,以<父类名>为基类,以<类名>为名
6.2.1
1.对象
对象
客观世界的任何事物都可以被看成是对象,对象是反 映客观事物属性及其行为特征的描述,是具体的。
对象属性:用来表示对象的状态,用变量来描述。 对象方法:描述对象行为的过程,用过程或函数实现
9
6.2.2
类(P250)
类:对一类相似对象的性质描述,这些对象具有相同
种类的属性以及方法。 相当于C语言中的结构体,但除了描述变量成员之外, 还要描述对象的行为特征,即函数。
Click:鼠标左键单击对象时发生的事件。
Dbclick: 鼠标左键双击对象时发生的事件。
Rightclick:鼠标右键单击对象时发生的事件。 GotFocus:对象接收到焦点时发生的事件。 LostFocus:对象失去焦点时发生的事件。 KeyPress:当用户在对象上按下或释放键时发生的事件。
InteractiveChange:以交互方式改变对象的值时发生的事件。
10
1.类的特性
类具有继承性、封装性和多态性三种基本特性。 1) 继承性:指通过继承关系利用已有的类构造新类。 在面向对象的方法里,继承是指在基于父类(现有的类)创 建子类(新类)时,子类继承了父类的方法和属性,可以为子 类添加新方法和属性。 2) 封装性 封装是一种信息隐藏技术,对象内部对用户是隐藏的, 不可直接访问;用户只能见到对象封装界面上的信息, 通过对象的外部接口访问对象。用户向对象发送消息, 对象根据收到的消息调用内部方法作出响应。 3) 多态性 所谓多态即一个名词可具有多种语义,多个函 数可具有相同的函数名,但实现方法不同。
保存表单
运行表单
2
6.1.1 使用表单设计器创建或修改表单
1.启动表单设计器 在命令窗口输入命令: CREATE FORM [表单名] (创建)
MODIFY
FORM
[表单名] (修改)
3
6.1.1 使用表单设计器创建或修改表单
2.表单设计器介绍
“对象”下拉列表框图 (P182)
“表单设计器”窗口包含正在设计的表单,表单窗口只能 在“表单设计器”窗口内移动。用户可在表单窗口中可视 化地添加和修改控件、改变控件布局。以新建方式启动表 页框选项卡 单设计器时 ,系统将默认为用户创建一个空白表单。
命令按钮组
容器 控件 定制 编辑框 表单 表单集 表格 (列)标头 超级链接 图象
OptionButton
Optiongroup Page PageFrame ProjectHook Separator Shape Spinner TextBox Timer ToolBar
选项按钮
选项按钮组 页 页框 项目挂钩 分隔符 图形 微调控件 文本框 定时器 工具栏
对象的建立和使用
对象由类来定义,只有具体的对象才能实现类的事件或 方法的操作.createobject()函数可将类定义成对象. 例:创建一个按钮标签对象 labelTest. 1. 拖动控件到表单,创建相应的控件对象。 (1) SET CLASSLIB TO myclass ADDITIVE 2. 由类创建对象 指明要创建的对象保存在哪个类库( .vcx 格式: <对象名>=createobject(<类名 >) 文件)中。关 键字 ADDITIVE 规定在打开指定类库的同时并不关闭其他早 功能:将以<类名>为名的类定义成以<对象名>为名的对象. 先已打开的类库。 (2) labelTest = CREATEOBJECT(“mylabel") 在此代码中假设保存在类库中的表单类名称为mylabel。
26
事件与方法的不同
事件过程由事件的激发而调用其代码,也可以在运行 中由程序调用其代码,而方法的代码只能在运行中由程 序调用。
常用的表单方法
Hide方法——隐藏表单,将表单的Visible属性设置为.F. ; Show方法——显示表单,将表单的Visible属性设置为.T. ;
window
⑤ 为Destory事件输入方法:wait “destory” window ⑥ 为Unload事件输入方法程序:wait “unload” window ⑦ 保存并运行表单(屏幕右上角出现提示窗口,单击鼠标
观察窗口的变化。单击表单的关闭按纽或关闭表单时, 提示窗口将继续变化。) 24
VFP对象的其他常用事件
对象和类的区分: 类是对象的模板,规定对象的属性,事件和方法程序。 对象通过类来产生,通过类来定义对象。 对象是类的实例。任何一个对象都是某个类的一个实例。 类抽象,不分配存储空间;对象具体,占用内存空间。 对象属性访问以及对象方法调用的基本格式: <对象引用>.<对象属性> <对象引用>.<对象方法>[(参数列表)]
第6章
表单设计基础
6.1 表单的基本操作 6.2 面向对象程序设计基础 6.3 表单设计器
6.4 常用表单控件
1
6.1 表单的基本操作
表单(Form)是VFP提供的用于建立应用程序界面的最主 要的对象之一 ,相当于WINDOWS应用程序的窗口 。 表单的基本操作过程: 创建表单 用表单设计器修改或新建表单
17
关于自定义类的几点说明 一个类库中可容纳多个类 创建的类可以由基类派生,也可由用户自己的类派生 如新类是基于容器类的,可象设计表单一样设计新类 将类添加到控件工具栏 表单控件工具栏—查看类—添加
类的编辑与删除
remove class <类名> of <类库名>
18
6.2.5
ProgrammaticChange:以编程方式改变对象的值时发生的事件。
25
2.方法程序
方法(Method):附属于对象的行为和动作,也称方法程序。 方法属于对象的内部函数, 用于完成某种特定的功能而 不一定响应某一事件,如添加对象(Addobject)方法、绘制 矩形(Box)方法、释放表单(Release)方法等。方法也被 “封装”在对象中,不同的对象具有不同的内部方法。 VFP提供了百余个内部方法供不同的对象调用。与事件 过程不同的是,根据需要可由用户自行建立新方法。
5
6.1.1 使用表单设计器创建或修改表单
4.快速表单 能在表单窗口为当前表单迅速产生选定的字段变量, 调用“表单生成器”来完成。 调用表单生成器的方法有三种: 系统菜单中【表单】|【快速表单】命令。 “表单设计器”工具栏中的“表单生成器”按钮。 右击表单窗口,在弹出的快捷菜单中选择“生成器”命 令。
属性设置框(P183)
4
6.1.1 使用表单设计器创建或修改表单
3.数据环境
“数据环境”指表单(或报表)所用的数据源,包括表、 视图和它们之间的关系。表单设计器环境下,单击“表单 设计器”工具栏上的“数据环境”按钮,或选择“显 示”—“数据环境”命令,即可打开“数据环境设计器”窗 口,此时,系统菜单栏上将出现“数据环境”菜单。
面向对象程序设计: 思想:将问题划分为类,由类定义的对象之间互发消息来完成功能。 主要结构特点: 1.程序一般由类的定义和类的使用两部分组成,在程序中定义各对象并 规定它们之间的传递消息的规律; 2.程序中的一切操作都是通过向对象发送消息来实现的,对象接收到消 息后,启动有关方法来完成相应的操作。 重点:数据。 8
活动文档
复选框 (表格)列 组合框 命令按钮
类名 Label Line Listbox Olecontrol Oleboundcontrol
含义
标签
线条 列表框 OLE容器控件 OLE绑定控件
CommandGroup
Container Contorl Custom EditBox Form FormSet Grid Header HyperLink Image
在表单对象从内存释放时引发,是表单对象释放时最后 一个引发的事件。
23
例6-1
建立表单,为表单设置Load等事件的方法程序,然后 运行表单,观察各个事件发生的先后顺序。
操作步骤如下:
① 新建一个空白表单
② 为Load事件输入方法程序: wait “load” window ③ 为Init事件输入方法程序:wait “init” window ④ 为Activate事件输入方法程序:wait “activate”
11
2.VFP中的类
VFP下,进行面向对象的程序设计或创建应用程序, 要用到VFP系统提供的基础类,即VFP基类,它是系统
本身内含的,并不存放在类库中。基类是VFP为用户预
先定义的类,用户可用基类来创建新类,此时基类是父 类,新类是子类。
12
Visual Foxpro基类列表
类名 ActiveDoc CheckBox Column ComboBox CommandButton 含义
22
VFP中的表单常用事件
(1) Click事件 单击鼠标左键时引发。
(2) DblClick事件
(3) Rightclick事件 (4) Load事件 (5) Init事件 (6) Activate事件 (7) Destroy事件 (8) Unload事件
用鼠标双击对象时引发。
鼠标右键单击对象时引发。 在表单对象建立之前引发,分配存储空间。 在表单建立时引发,表单对象初始化。 表单在内存中已建立,再激活表单。 在对象释放时引发。
事件后所执行的程序代码就是事件过程。
VFP系统中,事件集是固定的,用户不能定义新的事件,
对象可以响应50多种事件。
21
VFP基类中,最小事件集(即所有对象都包含这些事件)
事件 Init Destory Error
说明 当对象生成时引发 当对象从内存中释放时引发 当方法或事件代码出现运行错误时引发
19
6.3 用表单设计器设计表单
6.3.1 基本步骤
控件的基本操作 1.表单设计器窗口添加控件对象,操作控件
2.在属性窗口设置对象属性
② 移动控件 » 可在设置框中直接输入 3. 控件布局 ③ 调整控件大小 » 从系统提供的一组值中指定
① 选定控件
4. 设置Tab键次序 ④ 复制控件 » 需指定文件名或对话框中指定时,后有 … 5.“工具”菜单中的“选项”命令,打开“选项”对话框。 编写事件代码或方法程序 ① ⑤ 删除控件 » 默认值的设置
6
6.1.2 保存后运行表单
在命令窗口输入命令: DO FORM <表单文件名>
7
6.2
面向对象程序设计基础
面向过程程序设计(结构化程序设计): 思想:核心是功能分解。将问题先按解决流程分解成若干个模块功能块;
再设计数据结构;最后编写函数来对数据进行操作。重点在过程,当数据 结构发生改变时,所有代码都需改变。 重点:过程。
② 选择“表单”选项卡。 » 属性设为空
③ 在“Tab键次序”下拉列表框中选择“交互”或“按列 20 表”
6.3.2 事件过程和方法程序
1.事件
事件(Event)是一种由系统预先定义而由用户或系统引发 的动作,作用于对象上。
事件过程(Event Procudure) 是为处理特定事件而编写的一段程序。 当事件由用户触发(如C1ick)或由系统触发(如Load) 时,对象就会对该事件作出响应(Respond)。响应某个