德力西对应关系图 - delixi-yqyb.com€¦ · Title: 德力西对应关系图 Created Date: 8/9/2018 9:08:15 AM
第五章 面向对象设计与表单的应用
-
Upload
david-manning -
Category
Documents
-
view
63 -
download
10
description
Transcript of 第五章 面向对象设计与表单的应用
![Page 1: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/1.jpg)
11
第五章 第五章
面向对象设计与表单的应用面向对象设计与表单的应用
![Page 2: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/2.jpg)
22
第二讲 常用控件及面向对象第二讲 常用控件及面向对象
本讲学习内容• 常用表单控件属性和事件
• 面向对象的概念
![Page 3: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/3.jpg)
33
5.3 5.3 常用表单控件常用表单控件
标签 (Label) 控件 命令按钮 (CommandButton) 控件
命令组 (CommandGroup) 控件 文本 (TextBox) 控件
编辑框 (EditBox) 控件 复选框 (CheckBox) 控件
列表框 (ListBox) 控件 组合框 (combobox) 控件
表格 (Grid) 控件 计时器控件 (Timer)
![Page 4: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/4.jpg)
44
标签标签 (Label)(Label) 控件控件功能:在表单上显示文本,常用做提示或说
明常用属性:Caption :指定标签的标题AutoSize :设置标签在表单中的大小ForeColor :设置标签的字体颜色BackStyle :设置标签背景是否透明Name :定义标签对象的名称Alignment :指定标题文件在控件中显示的对齐方式
标签标签
标签
![Page 5: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/5.jpg)
55
命令按钮命令按钮 (CommandButton)(CommandButton) 控控件件
功能:命令按钮用来启动某个事件代码、完成 特定功能。
常用属性:位置及大小属性:移动或调整对象大小等操作Caption :设定在按钮上显示的文字Enable :指定按钮是否被用户选中Visible :指定按钮是否被隐藏常用事件:Click :在程序中包含触发此事件的代码命令按钮 命令按钮
![Page 6: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/6.jpg)
66
命令按钮 (Command) 示例 [ 例 ] 设计一个密码输入窗口 , 要求最多允许输入 3 次密码。 (1) 创建一个表单 , 然后在其中创建标签和文本框各 1 个 , 命令按钮 2 个。 (2) 属性设置。 (3) Form1 的 Load 事件代码编写如下: public i && i 用于计算输入次数 i=0 (4) Command1 的 Click 事件代码编写如下:
i=i+1IF THISFORM.Text1.Value='123456' && 文本框输入值与 123456( 预置的密码 ) 比较 THISFORM.Release && 本表单从内存释放ELSE IF i<3 && 允许输入 3 次 MESSAGEBOX(' 密码错 , 请重新输入 !')THISFORM.Text1.Value='' && 为重新输入清空文本框 THISFORM.Text1.Setfocus && 使文本框获得焦点 , 就是使光标在其中闪烁 ELSE MESSAGEBOX(' 密码错 , 禁止进入系统 !') THISFORM.Release ENDIFENDIF
![Page 7: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/7.jpg)
1010
文本框(文本框( TextBoxTextBox )控件)控件 文本框控件是一个基本控件,供用户输入或编辑数据。一、文本框的值 Value 属性用于指定文本框的值,并在框中显示出来。可以通过属性窗口或代码形式设定。代码形式如: THIS.text1.Value=“ 你好!” Value 包括数值型、字符型、日期型或逻辑型 4 种类型之一。 在输入数据时,按回车键表示结束。
文本框
文本框
文本框
文本框
![Page 8: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/8.jpg)
1111
文本框(文本框( TextBoxTextBox )控件)控件 二、 InputMask 属性 指定在一个文本框中如何输入和显示数据。 InputMask 属性值是一个字符串。该字符串通常有一些模式符组成,每个模式符规定了相应的位置上数据的输入和显示行为。
InputMask 属性值
InputMask 属性含义
x 允许输入任何字符9 允许输入数字和正负号# 允许输入数字、空格和正负号$ 显示当前货币符号 (由 SET CURRENCY 命令指定 )
$$ 在数值前面相邻的位置上显示当前货币符号 (浮动货币符 )
* 在数值左边显示 *
. 指定小数点的位置
, 分隔小数点左边的数字串
![Page 9: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/9.jpg)
1212
文本框(文本框( TextBoxTextBox )控件)控件 例题:设计一个登录界面,当输入用户名和口令并按确认键后,检验是否正确,若正确 ( 假定用户名为 ADMIN ,口令为 999) ,就显示“欢迎进入学籍管理系统”;若不正确,则显示“用户名或口令不正确”;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”并关闭窗口。步骤:1 、设计表单,口令限制为 3 位数字( InputMask 的属性值为“ 999”),输入时显示 * 号( passwordchar 属性值为“ *”)。
2 、从“表单”菜单选择“新建属性”命令,打开“新建属性”对话框,为表单添加新属性 num 。其中 num 是用以保存本次登录输入的次数的,在“属性”窗口中将其默认值设为 0 。
3 、为相关的控件的事件添加代码,以实现设计的功能要求。
![Page 10: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/10.jpg)
1313
登录表单的外观
Text2 的属性设置“ 确定”按钮的 click 事件代码如下:
IF THISFORM.TEXT1.VALUE="ADMIN" AND THISFORM.TEXT2.VALUE ="999"WAIT" 欢迎进入学籍管理系统 " WINDOW TIMEOUT 1THISFORM. RELEASEELSETHISFORM.NUM=THISFORM.NUM+1IF THISFORM.NUM=3WAIT" 用户名或口令不对,登录失败!
" WINDOW TIMEOUT 1THISFORM. RELEASEELSEWAIT" 用户名或口令不对 ,请重新输入! " WINDOW TIMEOUT 1ENDIFENDIF运行情况
![Page 11: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/11.jpg)
1414
文本框(文本框( TextBoxTextBox )控件)控件文本框数据绑定的两种具体方法:
一、利用文本框控件的 ControlSource 属性指定数据源
![Page 12: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/12.jpg)
1515
文本框(文本框( TextBoxTextBox )控件)控件二、在相应的文本控件上单击鼠标右键,打开快捷菜单后选择“生成器”项进入生成器对话框,然后打开“ Value”页面,在其中的 Field name 选项框中选择相应的数据表和数据项 。
![Page 13: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/13.jpg)
1616
三、控件与数据绑定
( 1)数据绑定的概念:数据绑定是指将文本框与某个数据源联系起来。用文本框的 ControlSource 属性来指定。数据源有数据表的字段和变量两种。
( 2)数据绑定的功效:文本框与数据绑定后,控件值便与数据源的数据一致了。这时文本框与数据源之间可以相互传递数据。
文本框(文本框( TextBoxTextBox )控件 )控件
![Page 14: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/14.jpg)
1717
编辑框编辑框 (EditBox)(EditBox) 控件控件
编辑框用于输入或编辑文本,它只能编辑文本,即字符型数据。它可以输入多段文字。它一般用来编辑数据表中数据量比较大的备注型字段。 VFP提供了垂直滚动条。
文本框可以编辑 4 种数据,但它只能在一个段落输入数据。
编辑框与文本框的区别见右图。
编辑框的生成器与文本框类似。
![Page 15: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/15.jpg)
1818
编辑框编辑框 (EditBox)(EditBox) 控件控件编辑框的常见属性:ControlSource :设置编辑框的数据源,一般为数据表的备注字段。
Value :保存编辑框中的内容,可过该属性来访问编辑框中的内容。
SelText :返回用户在编辑区内选定的文本,若未选定任何文本,则返回空串。
SelLength :返回用户在文本输入区中所选定字符的数目。 Readonly:确定用户是否能修改编辑框中的内容。 Scroolbars :指定编辑框是否具有滚动条,当属性值为0时,编辑框没有滚动条,当属性值为2(默认值)时,编辑框包含垂直滚动条。
![Page 16: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/16.jpg)
1919
编辑框编辑框 (EditBox)(EditBox) 控件控件例题:设计一个表单,要求当文
本框得到焦点时能立即显示在编辑框中选定的文本。
1 、在表单上创建一个文本框和编辑框;
2 、在数据环境中添加学生表,将 Edit1 编辑框与备注字段学生表 .简历绑定。
3 、 Edit1 编辑框的 LostFocus事件代码如下:
THIS.HideSelection=.F.4 、 Text1 文本框的 GotFocus
事件代码如下: THIS.VALUE=THISFORM.Edit1.seltext 更多关于编辑框的介绍详见教材例题 6- 7更多关于编辑框的介绍详见教材例题 6- 7
![Page 17: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/17.jpg)
2020
复选框(复选框( CheckBoxCheckBox )控件 )控件
复选框复选框
复选框的外观复选框可被用户指明选定还是清除,其外观有方框和按钮两类。复选框的值Value 属性表示了复选框的状态: 0 或 .F. 表示清除; 1 或 .T.表示选定; 2 表示灰色状态。
一个复选框用于标记一个两值状态,如真( .T.)或假( .F.)。当处于真状态时,复选框内显示一个对勾;否则,复选框内为空白。 使用 Caption 属性可指定显示在复选框旁的文本。使用 Picture 属性可以为复选框指定一幅图片。
![Page 18: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/18.jpg)
2121
复选框(复选框( CheckBoxCheckBox )控件 )控件 例题: 创建一表单,表单上设置一系列复选框,分别代表学生的选课名称,当用户选择若干课程之后,可以通过点击按钮将学生的选修课程显示在消息框中。
例题要求的表单的外观
![Page 19: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/19.jpg)
2222
复选框(复选框( CheckBoxCheckBox )控件 )控件 例题设计步骤: 创建一表单,表单上设置一系列复选框,分别代表学生的选课名称,当用户选择若干课程之后,可以通过点击按钮将学生的选修课程显示在消息框中。
① 在表单上创建复选框以及文本框控件,其中文本框的属性“ Value”(生成器的 Value 页面)设置成内存变量 ab,用来存储在消息框中显示的信息。
② 在表单的“ load”事件中添加代码: ab=””。目的是每次运行前将变量 ab的值设置为空值。
③ 创建一个按钮控件(信息显示),然后为此按钮的” Click”事件添加代码 :
ab=THISFORM.TEXT1.VALUE+"同学的选课信息为 :"IF THISFORM.CHECK1.VALUE=1ab=ab+" 大学语文 "ENDIFIF THISFORM.CHECK 2.VALUE=1ab=ab+" 国学概论 "ENDIFIF THISFORM.CHECK 3.VALUE=1ab=ab+" WEB技术 "ENDIFIF THISFORM.CHECK 4.VALUE=1ab=ab+" 离散数学 "ENDIFIF THISFORM.CHECK 5.VALUE=1ab=ab+" VFP 设计 "ENDIFIF THISFORM.CHECK 6.VALUE=1ab=ab+“ 国风赏析“ENDIF =MESSAGEBOX(ab)
ab=THISFORM.TEXT1.VALUE+"同学的选课信息为 :"IF THISFORM.CHECK1.VALUE=1ab=ab+" 大学语文 "ENDIFIF THISFORM.CHECK 2.VALUE=1ab=ab+" 国学概论 "ENDIFIF THISFORM.CHECK 3.VALUE=1ab=ab+" WEB技术 "ENDIFIF THISFORM.CHECK 4.VALUE=1ab=ab+" 离散数学 "ENDIFIF THISFORM.CHECK 5.VALUE=1ab=ab+" VFP 设计 "ENDIFIF THISFORM.CHECK 6.VALUE=1ab=ab+“ 国风赏析“ENDIF =MESSAGEBOX(ab)
![Page 20: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/20.jpg)
2323
列表框(列表框( ListBoxListBox )控件)控件 列表框提供一组条目(数据项),用户可以从中选择一个或多个条目。
一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。在程序运行过程中单击列表框的选项值,也会将该值存储到相应的变量或者字段之中。
列表框列表框
![Page 21: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/21.jpg)
2424
列表框(列表框( ListBoxListBox )控件 )控件 列表框常用属性:列表框常用属性:
RowSourceType 属性:指明数据源的类型。 RowSource 属性:指定列表框的数据源。List 属性:用以存取列表框中数据条目的字符串数组。例如, LIST[1] 代表列表框中的第一行(第一个数据项)。 ListCount 属性:列表框中数据条目的数目 。ColumnCount 属性:指定列表框的列数 。Value 属性:返回列表框中被选中的条目 。ControlSource 属性:该属性在列表框中的用法与在其他控件中的用法有所不同,在这里,用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果。
![Page 22: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/22.jpg)
2525
表表 7.5 7.5 列表框、组合框控件的值源类型列表框、组合框控件的值源类型
组合框 (Combo)下拉组合框 Style 属性值 0
下拉列表框 Style 属性值 1
控件值源的类型
设置值 值源类型 说 明0 无 缺省值 ,运行时用 AddItem或 AddListItem方法程序将数据分别填入列
中1 值 RowSource 设置逗号分隔的数据项来分别填充列2 别名 RowSource设置表名 ,表由数据环境提供 ,用 ColumnCount确定字段
数3 SQL语句 RowSource设置 SQL SELECT命令选出记录 ,并可创建一个临时表或表4 查询 (.QPR) RowSource设置一个 .QPR文件名5 数组 RowSource设置数组名6 字段 RowSource设置逗号分隔的字段列表 ,首字段有表名前缀 ,表来自数据
环境7 文件 在 RowSource设置路径 ,可用通配符或掩码 ,结果以目录与文件名填充
列8 结构 在 RowSource设置表名 , 结果以字段名来填充列9 弹出式菜单 为与以前版本兼容而设
![Page 23: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/23.jpg)
2626
组合框组合框 (combobox)(combobox) 控件控件 组合框是文本框和列表框的组合,我们可以在文本框部分中输入信息,也可以在列表框部分中选择。
列表框和组合框都有供用户选项的列表,它们之间的区别如下: ( 1)列表框任何时候都显示它的列表;而组合框平时只显示一个选项,待用户单击它的向下按钮后才能显示可滚动的下拉列表, ( 2)组合框分为下拉组合框和下拉列表框,前者允许输入数据,后者不允许。
![Page 24: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/24.jpg)
2727
组合框的功能是供用户在其列表中选项,或人工键入一个值。组合框的 Style 属性将该控件分为两种类型。 Style 属性为 0 ,代表下拉组合框; Style 属性为 2 ,代表下拉列表框。
组合框组合框 (combobox)(combobox) 控件控件
1.ListCount 属性 返回组合框中列表项的个数。在运行时为只读属性。2.ListIndex 属性 返回或设置组合框的列表显示时选定项的顺序号。3.Value 与 DisplayValue 属性 Value 属性返回在列表中选定的项, DisplayValue返回组合框中键入的文本。
![Page 25: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/25.jpg)
2828
组合框组合框 (combobox)(combobox) 控件控件
4.Selected属性 用于分辨组合框或列表框中某一列表项是否被选中。当选中时 Selected属性返回 .T.,否则 .F.。5.AddItem方法程序 当组合框或列表框的 RowSourceType属性为 0时,使用本方法程序可在其列表中添加一个新项。6.List 属性 返回组合框或列表框第 nRow行, nCol 列的内容。 如下列表单 Click 事件代码可以显示单列组合框的全部列表项。 FOR i=1 TO THISFORM.Combo1.ListCount ?THISFORM.Combo1.List(i) ENDFOR
![Page 26: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/26.jpg)
2929
表格(表格( GridGrid )控件 )控件 表格可以设置在表单或页面中,用于显示表中的字段。在 VFP中表格用 Grid 来表示。
表格的组成( 1)表格( Grid):由一或若干列 组成。( 2)列( Column):一列可显示表 的一个字段,列由列标题和列 控件组成。( 3)列标题( Header1):默认显示 字段名,允许修改。( 4)列控件(例如 Text1):一列必 须设置一个控件,该列中的每个 单元格都可用此控件来显示字段 值。
表格 Grid表格 Grid
![Page 27: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/27.jpg)
3030
表格(表格( GridGrid )控件 )控件 表格属性选介表格属性选介
ColumnCount :指定表格中的列数。默认值为 -1 ,此时表格中列出表的所有字段。
RecordSource :指定数据源,即指定要在表格中显示的表
RecordSourceType :指定数据源类型,可取 0(表示表)或 1(表示别名)。
AllowAddNew:该属性为 .T. 时允许用户向表格中的表添加记录 . 如果为 .F.(默认值 ),只能用 APPEND BLANK或 INSERT 命令来添加记录 .
![Page 28: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/28.jpg)
3131
表格(表格( GridGrid )控件)控件
表格属性选介
列属性ControlSource:指定表的字段 ( 如学生 .姓名 ) 为数据源。CurrentControl :为列指定活动控件,默认为 Text1 。Sparse :取值为 .T.(默认值 ) ,在列中只有选中的单元格
以 CurrentControl 指定的控件显示,其它单元格仍以文本显示。取值为 .F. 时,该列的所有单元格均以 CurrentControl 指定的控件显示。
![Page 29: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/29.jpg)
3232
例题 : 在表单上创建如右图所示的表格控件来编辑学生表,要求只包含学号、姓名和年龄 3 个字段,并要求能在表格中添加记录。
1 、在表单上创建一个表格控件;
2 、通过表格生成器设置表格;
3 、调整表格列宽;4 、调整表格控件大小;5 、属性设置如下:Form1 的 Caption 属性:
学生表编辑;Grid1 的 AllowAddNew属
性: .T. 。
允许用户添加新的记录允许用户添加新的记录
表格(表格( GridGrid )控件)控件
![Page 30: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/30.jpg)
3333
例题(创建关联表单) 表格最常见的用途之一是,当某控件显示父表数据时,表格中
就显示子表的相应数据。 设计一个表单,左边显示学生信息表,右边显示学生选课表。
通过表格控件在学生信息表中显示学生信息,当选定其中某一学生时,在右边的选课表中显示该学生记录对应的选课记录。效果如下图:
表格(表格( GridGrid )控件)控件
![Page 31: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/31.jpg)
3434
• 例题(创建关联表单)设计步骤: 1 、在表单上设计两个表格,分别连接学生信息表和学生选课
表。如下图。
表格(表格( GridGrid )控件)控件
2 、在学生选课表上单击右键,进入生成器,进入关系页面( relationship),设置父表(学生信息表)和子表(学生选课表)关键字。
通过表的关联可以看出,父表的关键字是“学生信息 . 学号”,子表的关键字是当前表(选课表)的“学号”字段。如右图所示。
父表关键字父表关键字
子表关键字子表关键字
![Page 32: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/32.jpg)
3535
计时器控件计时器控件 (Timer) (Timer)
计时器控件能周期地按时间间隔自动执行它的 Timer 事件代码,在应用程序中处理可能反复发生的动作。它在程序控制中十分有用。
1.Timer 事件代码:表示执行的动作。2.Interval 属性:表示 Timer 事件的触发时间间隔,单位为毫秒。3.Enabled 属性:当该属性为 .T. 时计时器被启动。
![Page 33: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/33.jpg)
3636
例题:在表单上设置一个向左移动的字幕,文本为“欢迎进入 Visual Foxpro 8.0世界”,并在表单右下角设计一个时钟。如图所示。
计时器控件计时器控件 (Timer) (Timer)
![Page 34: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/34.jpg)
3737
例题操作步骤如下:1. 在表单上创建标签和计时器各 2 个,设置相应属性
(Interval 属性值为 1000)2.Timer1 的 Timer 事件代码如下:IF THISFORM.LABEL1.LEFT+THISFORM.LABEL1.WIDTH<0 THISFORM.LABEL1.LEFT=THISFORM.WIDTH
ELSE THISFORM.LABEL1.LEFT=THISFORM.LABEL1.LEFT-10
ENDIF && 移动欢迎的标签控件。3.Timer2 的 Timer 事件代码如下:IF THISFORM.LABEL2.CAPTION !=TIME()THISFORM.LABEL2.CAPTION=TIME()&& 显示时间ENDIF
计时器控件计时器控件 (Timer) (Timer)
![Page 35: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/35.jpg)
3838
5.4 5.4 面向对象的概念面向对象的概念对象 ( 1)对象 对象( Object)是反映客观事物属性及行为特征
的描述。每个对象都具有描述它的特征的属性,及附属于它的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是“类”的具体实例。
( 2)对象的属性及行为 对象的属性是描述对象特征的参数;对象的行为特征描述了对象可执行的行为动作。
比如:长虹电视机是一个对象,屏幕的大小是这个对象的一个属性,播放节目是这个对象的一个行为。而长虹电视机是“ 电视机”这个类的一个具体实例。
比如:长虹电视机是一个对象,屏幕的大小是这个对象的一个属性,播放节目是这个对象的一个行为。而长虹电视机是“ 电视机”这个类的一个具体实例。
例如:在 VFP 的应用程序中,窗口便是一个对象。它具有以下属性和行为特征: . 窗口的标题及窗口的大小; . 窗口的前景和背景颜色; . 窗口中所显示信息的内容及格式; . 窗口中提供了哪些控件; . 窗口中每个控件在窗口的位置; . 窗口中的控件应如何操作……
例如:在 VFP 的应用程序中,窗口便是一个对象。它具有以下属性和行为特征: . 窗口的标题及窗口的大小; . 窗口的前景和背景颜色; . 窗口中所显示信息的内容及格式; . 窗口中提供了哪些控件; . 窗口中每个控件在窗口的位置; . 窗口中的控件应如何操作……
![Page 36: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/36.jpg)
3939
对“对象”的通俗理解 对“对象”的通俗理解
在在 VFPVFP中,对象就是我们在软件中所看中,对象就是我们在软件中所看
到的表单、文本框、按钮、标签。到的表单、文本框、按钮、标签。
一个软件的外观主要也就是由这些东西组一个软件的外观主要也就是由这些东西组成,那么我们要编软件就应该掌握各种对象成,那么我们要编软件就应该掌握各种对象的使用方法。的使用方法。
![Page 37: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/37.jpg)
4040
类
所谓类 (Class) ,就是一组对象的属性和行为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。在 VFP中,类就像是一个模板,对象都是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。
![Page 38: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/38.jpg)
4141
类的特性
类具有继承性、封装性和多态性等特性。 继承性( Inheritance)指通过继承关系利用已
有的类构造新类。 封装性 (Encapsulation) 指类的内部信息对用户
是隐蔽的。 多态性( Polymorphism)指一些关联的类包含同名的方法程序,但方法程序的内容可以不同,具体调用在运行时根据对象的类确定。
![Page 39: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/39.jpg)
4242
基类简介基类简介
基类 VFP的基类是系统内嵌的、并不存放在某个类库中。
VFP为用户提供 29 个基类。基类又可以分成容器类和控件类。
VFP拥有的基类的情况祥见表 5-17,基类的。
最小属性集见表 5-18。
![Page 40: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/40.jpg)
4343
容器类 (Containers) 可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。
控件类不能容纳其它对象,它没有容器类灵活。如文本框对象,在其中不可放其它对象。由控件类创造的对象,是不能单独使用和修改的,它只能做为容器类中的一个元素,通过由容器类创造的对象修改或使用。
![Page 41: 第五章 面向对象设计与表单的应用](https://reader033.fdocuments.net/reader033/viewer/2022061522/56813727550346895d9eb2a6/html5/thumbnails/41.jpg)
4545
作业:作业: 11 、本章课后习题、本章课后习题 22、、本章习题实验题目:实验题目: 11.设计带有标签和文本框控件的表单。.设计带有标签和文本框控件的表单。 22.设计带有计时器和命令按钮控件的表单。.设计带有计时器和命令按钮控件的表单。 33.设计带有编辑框、复选框、组合框等控件的.设计带有编辑框、复选框、组合框等控件的表单。表单。
另请同学们思考书后实验题的做法,并努力实现之 ^_^( 大家注意:书后实验题目的设计方法不唯一 )
另请同学们思考书后实验题的做法,并努力实现之 ^_^( 大家注意:书后实验题目的设计方法不唯一 )