1 / 41

第五章 面向对象设计与表单的应用

第五章 面向对象设计与表单的应用. 第二讲 常用控件及面向对象. 本讲学习内容 常用表单控件属性和事件 面向对象的概念. 5.3 常用表单控件. 标签 (Label) 控件 命令按钮 (CommandButton) 控件 命令组 (CommandGroup) 控件 文本 (TextBox) 控件 编辑框 (EditBox) 控件 复选框 (CheckBox) 控件 列表框 (ListBox) 控件 组合框 (combobox) 控件 表格 (Grid) 控件 计时器控件 (Timer). 标签. 标签.

Download Presentation

第五章 面向对象设计与表单的应用

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第五章 面向对象设计与表单的应用

  2. 第二讲 常用控件及面向对象 本讲学习内容 • 常用表单控件属性和事件 • 面向对象的概念

  3. 5.3 常用表单控件 标签(Label)控件 命令按钮(CommandButton)控件 命令组(CommandGroup)控件 文本(TextBox)控件 编辑框(EditBox)控件 复选框(CheckBox)控件 列表框(ListBox)控件 组合框(combobox)控件 表格(Grid)控件 计时器控件(Timer)

  4. 标签 标签 标签 标签(Label)控件 功能:在表单上显示文本,常用做提示或说 明 常用属性: Caption:指定标签的标题 AutoSize:设置标签在表单中的大小 ForeColor:设置标签的字体颜色 BackStyle:设置标签背景是否透明 Name:定义标签对象的名称 Alignment:指定标题文件在控件中显示的对齐方式

  5. 命令按钮(CommandButton)控件 功能:命令按钮用来启动某个事件代码、完成 特定功能。 常用属性: 位置及大小属性:移动或调整对象大小等操作 Caption:设定在按钮上显示的文字 Enable:指定按钮是否被用户选中 Visible:指定按钮是否被隐藏 常用事件: Click:在程序中包含触发此事件的代码 命令按钮 命令按钮

  6. 命令按钮(Command)示例 [例] 设计一个密码输入窗口, 要求最多允许输入3次密码。 (1) 创建一个表单,然后在其中创建标签和文本框各1个,命令按钮2个。 (2) 属性设置。 (3) Form1的Load事件代码编写如下: public i && i用于计算输入次数 i=0 (4) Command1的Click事件代码编写如下: i=i+1 IF THISFORM.Text1.Value='123456' && 文本框输入值与123456(预置的密码)比较 THISFORM.Release && 本表单从内存释放 ELSE IF i<3 && 允许输入3次 MESSAGEBOX('密码错,请重新输入!') THISFORM.Text1.Value='' && 为重新输入清空文本框 THISFORM.Text1.Setfocus && 使文本框获得焦点,就是使光标在其中闪烁 ELSE MESSAGEBOX('密码错,禁止进入系统!') THISFORM.Release ENDIF ENDIF

  7. 文本框 文本框(TextBox)控件 文本框控件是一个基本控件,供用户输入或编辑数据。 一、文本框的值 Value属性用于指定文本框的值,并在框中显示出来。可以通过属性窗口或代码形式设定。代码形式如: THIS.text1.Value=“你好!” Value 包括数值型、字符型、日期型或逻辑型4种类型之一。 在输入数据时,按回车键表示结束。

  8. 文本框(TextBox)控件 二、InputMask属性 指定在一个文本框中如何输入和显示数据。InputMask属性值是一个字符串。该字符串通常有一些模式符组成,每个模式符规定了相应的位置上数据的输入和显示行为。

  9. 文本框(TextBox)控件 例题:设计一个登录界面,当输入用户名和口令并按确认键后,检验是否正确,若正确(假定用户名为ADMIN,口令为999),就显示“欢迎进入学籍管理系统”;若不正确,则显示“用户名或口令不正确”;如果三次输入不正确,就显示“用户名或口令不对,登录失败!”并关闭窗口。 步骤: 1、设计表单,口令限制为3位数字(InputMask的属性值为“999”),输入时显示*号(passwordchar属性值为“*”)。 2、从“表单”菜单选择“新建属性”命令,打开“新建属性”对话框,为表单添加新属性num。其中num是用以保存本次登录输入的次数的,在“属性”窗口中将其默认值设为0。 3、为相关的控件的事件添加代码,以实现设计的功能要求。

  10. 登录表单的外观 Text2的属性设置 “确定”按钮的click事件代码如下: IF THISFORM.TEXT1.VALUE="ADMIN" AND THISFORM.TEXT2.VALUE ="999" WAIT"欢迎进入学籍管理系统" WINDOW TIMEOUT 1 THISFORM. RELEASE ELSE THISFORM.NUM=THISFORM.NUM+1 IF THISFORM.NUM=3 WAIT"用户名或口令不对,登录失败! " WINDOW TIMEOUT 1 THISFORM. RELEASE ELSE WAIT"用户名或口令不对,请重新输入!" WINDOW TIMEOUT 1 ENDIF ENDIF 运行情况

  11. 文本框(TextBox)控件 文本框数据绑定的两种具体方法: 一、利用文本框控件的ControlSource属性指定数据源

  12. 文本框(TextBox)控件 二、在相应的文本控件上单击鼠标右键,打开快捷菜单后选择“生成器”项进入生成器对话框,然后打开“Value”页面,在其中的Field name选项框中选择相应的数据表和数据项 。

  13. 文本框(TextBox)控件 三、控件与数据绑定 (1)数据绑定的概念:数据绑定是指将文本框与某个数据源联系起来。用文本框的ControlSource属性来指定。数据源有数据表的字段和变量两种。 (2)数据绑定的功效:文本框与数据绑定后,控件值便与数据源的数据一致了。这时文本框与数据源之间可以相互传递数据。

  14. 编辑框(EditBox)控件 编辑框用于输入或编辑文本,它只能编辑文本,即字符型数据。它可以输入多段文字。它一般用来编辑数据表中数据量比较大的备注型字段。VFP提供了垂直滚动条。 文本框可以编辑4种数据,但它只能在一个段落输入数据。 编辑框与文本框的区别见右图。 编辑框的生成器与文本框类似。

  15. 编辑框(EditBox)控件 编辑框的常见属性: ControlSource:设置编辑框的数据源,一般为数据表的备注字段。 Value:保存编辑框中的内容,可过该属性来访问编辑框中的内容。 SelText:返回用户在编辑区内选定的文本,若未选定任何文本,则返回空串。 SelLength:返回用户在文本输入区中所选定字符的数目。 Readonly:确定用户是否能修改编辑框中的内容。 Scroolbars:指定编辑框是否具有滚动条,当属性值为0时,编 辑框没有滚动条,当属性值为2(默认值)时,编辑框包含垂 直滚动条。

  16. 编辑框(EditBox)控件 例题:设计一个表单,要求当文本框得到焦点时能立即显示在编辑框中选定的文本。 1、在表单上创建一个文本框和编辑框; 2、在数据环境中添加学生表,将Edit1编辑框与备注字段学生表.简历绑定。 3、Edit1编辑框的LostFocus事件代码如下: THIS.HideSelection=.F. 4、Text1文本框的GotFocus事件代码如下: THIS.VALUE=THISFORM.Edit1.seltext 更多关于编辑框的介绍详见教材例题6-7

  17. 复选框(CheckBox)控件 一个复选框用于标记一个两值状态,如真(.T.)或假(.F.)。当处于真状态时,复选框内显示一个对勾;否则,复选框内为空白。 使用 Caption 属性可指定显示在复选框旁的文本。使用 Picture 属性可以为复选框指定一幅图片。 复选框 复选框的外观 复选框可被用户指明选定还是清除,其外观有方框和按钮两类。 复选框的值 Value属性表示了复选框的状态:0或.F.表示清除;1或.T.表示选定;2表示灰色状态。

  18. 例题要求的表单的外观 复选框(CheckBox)控件 例题: 创建一表单,表单上设置一系列复选框,分别代表学生的选课名称,当用户选择若干课程之后,可以通过点击按钮将学生的选修课程显示在消息框中。

  19. 复选框(CheckBox)控件 ab=THISFORM.TEXT1.VALUE+"同学的选课信息为:" IF THISFORM.CHECK1.VALUE=1 ab=ab+" 大学语文" ENDIF IF THISFORM.CHECK 2.VALUE=1 ab=ab+" 国学概论" ENDIF IF THISFORM.CHECK 3.VALUE=1 ab=ab+" WEB技术" ENDIF IF THISFORM.CHECK 4.VALUE=1 ab=ab+" 离散数学" ENDIF IF THISFORM.CHECK 5.VALUE=1 ab=ab+" VFP设计" ENDIF IF THISFORM.CHECK 6.VALUE=1 ab=ab+“ 国风赏析“ ENDIF =MESSAGEBOX(ab) 例题设计步骤: 创建一表单,表单上设置一系列复选框,分别代表学生的选课名称,当用户选择若干课程之后,可以通过点击按钮将学生的选修课程显示在消息框中。 ① 在表单上创建复选框以及文本框控件,其中文本框的属性“Value”(生成器的Value页面)设置成内存变量ab,用来存储在消息框中显示的信息。 ② 在表单的“load”事件中添加代码:ab=””。目的是每次运行前将变量ab的值设置为空值。 ③ 创建一个按钮控件(信息显示),然后为此按钮的”Click”事件添加代码:

  20. 列表框(ListBox)控件 列表框提供一组条目(数据项),用户可以从中选择一个或多个条目。 一般情况下,列表框显示其中的若干条目,用户可以通过滚动条浏览其他条目。在程序运行过程中单击列表框的选项值,也会将该值存储到相应的变量或者字段之中。 列表框

  21. 列表框(ListBox)控件 列表框常用属性: RowSourceType属性:指明数据源的类型。 RowSource属性:指定列表框的数据源。 List属性:用以存取列表框中数据条目的字符串数组。例如, LIST[1]代表列表框中的第一行(第一个数据项)。 ListCount属性:列表框中数据条目的数目 。 ColumnCount属性:指定列表框的列数 。 Value属性:返回列表框中被选中的条目 。 ControlSource属性:该属性在列表框中的用法与在其他控件中的用法有所不同,在这里,用户可以通过该属性指定一个字段或变量用以保存用户从列表框中选择的结果。

  22. 表7.5 列表框、组合框控件的值源类型 组合框(Combo) 下拉组合框Style属性值 0 下拉列表框 Style属性值1 控件值源的类型

  23. 组合框(combobox)控件 组合框是文本框和列表框的组合,我们可以在文本框部分中输入信息,也可以在列表框部分中选择。 列表框和组合框都有供用户选项的列表,它们之间的区别如下: (1)列表框任何时候都显示它的列表;而组合框平时只显示一个选项,待用户单击它的向下按钮后才能显示可滚动的下拉列表, (2)组合框分为下拉组合框和下拉列表框,前者允许输入数据,后者不允许。

  24. 组合框(combobox)控件 组合框的功能是供用户在其列表中选项,或人工键入一个值。组合框的Style属性将该控件分为两种类型。 Style属性为0,代表下拉组合框; Style属性为2,代表下拉列表框。 其他常用属性 1.ListCount属性 返回组合框中列表项的个数。在运行时为只读属性。 2.ListIndex属性 返回或设置组合框的列表显示时选定项的顺序号。 3.Value与DisplayValue属性 Value属性返回在列表中选定的项,DisplayValue返回组合框中键入的文本。

  25. 组合框(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

  26. 表格(Grid)控件 表格可以设置在表单或页面中,用于显示表中的字段。在VFP中表格用Grid来表示。 表格的组成 (1)表格(Grid):由一或若干列 组成。 (2)列(Column):一列可显示表 的一个字段,列由列标题和列 控件组成。 (3)列标题(Header1):默认显示 字段名,允许修改。 (4)列控件(例如Text1):一列必 须设置一个控件,该列中的每个 单元格都可用此控件来显示字段 值。 表格Grid

  27. 表格(Grid)控件 表格属性选介 ColumnCount:指定表格中的列数。默认值为-1,此时表格中列出表的所有字段。 RecordSource:指定数据源,即指定要在表格中显示的表 RecordSourceType:指定数据源类型,可取0(表示表)或1(表示别名)。 AllowAddNew:该属性为.T.时允许用户向表格中的表添加记录.如果为.F.(默认值),只能用APPEND BLANK或INSERT命令来添加记录.

  28. 表格(Grid)控件 表格属性选介 列属性 ControlSource:指定表的字段(如学生.姓名)为数据源。 CurrentControl:为列指定活动控件,默认为Text1。 Sparse:取值为.T.(默认值),在列中只有选中的单元格 以CurrentControl指定的控件显示,其它单元格仍以文本显示。取值为.F.时,该列的所有单元格均以CurrentControl指定的控件显示。

  29. 允许用户添加新的记录 表格(Grid)控件 例题: 在表单上创建如右图所示的表格控件来编辑学生表,要求只包含学号、姓名和年龄3个字段,并要求能在表格中添加记录。 1、在表单上创建一个表格控件; 2、通过表格生成器设置表格; 3、调整表格列宽; 4、调整表格控件大小; 5、属性设置如下: Form1的Caption属性:学生表编辑; Grid1的AllowAddNew属性:.T.。

  30. 表格(Grid)控件 例题(创建关联表单) 表格最常见的用途之一是,当某控件显示父表数据时,表格中就显示子表的相应数据。 设计一个表单,左边显示学生信息表,右边显示学生选课表。通过表格控件在学生信息表中显示学生信息,当选定其中某一学生时,在右边的选课表中显示该学生记录对应的选课记录。效果如下图:

  31. 父表关键字 子表关键字 表格(Grid)控件 • 例题(创建关联表单)设计步骤: 1、在表单上设计两个表格,分别连接学生信息表和学生选课表。如下图。 2、在学生选课表上单击右键,进入生成器,进入关系页面(relationship),设置父表(学生信息表)和子表(学生选课表)关键字。 通过表的关联可以看出,父表的关键字是“学生信息.学号”,子表的关键字是当前表(选课表)的“学号”字段。如右图所示。

  32. 计时器控件(Timer) 计时器控件能周期地按时间间隔自动执行它的Timer事件代码,在应用程序中处理可能反复发生的动作。它在程序控制中十分有用。 1.Timer事件代码:表示执行的动作。 2.Interval 属性:表示Timer事件的触发时间间隔,单位为毫秒。 3.Enabled属性:当该属性为.T.时计时器被启动。

  33. 计时器控件(Timer) 例题:在表单上设置一个向左移动的字幕,文本为“欢迎进入Visual Foxpro 8.0世界”,并在表单右下角设计一个时钟。如图所示。

  34. 计时器控件(Timer) 例题操作步骤如下: 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

  35. 5.4 面向对象的概念 对象 (1)对象 对象(Object)是反映客观事物属性及行为特征的描述。每个对象都具有描述它的特征的属性,及附属于它的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象编程的基本元素,是“类”的具体实例。 (2)对象的属性及行为 对象的属性是描述对象特征的参数;对象的行为特征描述了对象可执行的行为动作。 例如:在VFP的应用程序中,窗口便是一个对象。它具有以下属性和行为特征: .窗口的标题及窗口的大小; .窗口的前景和背景颜色; .窗口中所显示信息的内容及格式; .窗口中提供了哪些控件; .窗口中每个控件在窗口的位置; .窗口中的控件应如何操作…… 比如:长虹电视机是一个对象,屏幕的大小是这个对象的一 个属性,播放节目是这个对象的一个行为。而长虹电视机是 “电视机”这个类的一个具体实例。

  36. 对“对象”的通俗理解   在VFP中,对象就是我们在软件中所看 到的表单、文本框、按钮、标签。 一个软件的外观主要也就是由这些东西组成,那么我们要编软件就应该掌握各种对象的使用方法。

  37. 所谓类(Class),就是一组对象的属性和行为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。在VFP中,类就像是一个模板,对象都是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。

  38. 类的特性 类具有继承性、封装性和多态性等特性。 继承性(Inheritance)指通过继承关系利用已有的类构造新类。 封装性(Encapsulation) 指类的内部信息对用户是隐蔽的。 多态性(Polymorphism)指一些关联的类包含同名的方法程序,但方法程序的内容可以不同,具体调用在运行时根据对象的类确定。

  39. 基类简介 基类 VFP的基类是系统内嵌的、并不存放在某个类库中。VFP为用户提供29个基类。基类又可以分成容器类和控件类。 VFP拥有的基类的情况祥见表5-17,基类的。 最小属性集见表5-18。

  40. 容器类(Containers)可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。 控件类不能容纳其它对象,它没有容器类灵活。如文本框对象,在其中不可放其它对象。由控件类创造的对象,是不能单独使用和修改的,它只能做为容器类中的一个元素,通过由容器类创造的对象修改或使用。

  41. 作业:1、本章课后习题2、本章习题实验题目:1.设计带有标签和文本框控件的表单。2.设计带有计时器和命令按钮控件的表单。3.设计带有编辑框、复选框、组合框等控件的表单。作业:1、本章课后习题2、本章习题实验题目:1.设计带有标签和文本框控件的表单。2.设计带有计时器和命令按钮控件的表单。3.设计带有编辑框、复选框、组合框等控件的表单。 另请同学们思考书后实验题的做法,并努力实现之^_^ (大家注意:书后实验题目的设计方法不唯一)

More Related