版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章面向对象可视化编程基础_表单设计基础,本 章 要 点,面向对象的基本概念 设计类 对象的操作 对象设计实例,5.1 表单设计器,1、什么是表单 表单(Form)在系统中是用户的主要界面,也有人把它称为屏幕(Screen)或窗口。例如,对话框、向导、各种设计器等在VFP中都视为表单。 2.表单设计器比表单向导灵活,不但能创建表单,且能修改表单;操作界面可视化;表单设计面向对象。 1. 表单设计的基本步骤 2. 快速创建表单 3. 表单设计常用的工具栏 4. 数据环境设计器 5. 调整Tab键次序 6. 表单控件工具栏的使用,3. 表单设计的基本步骤 打开表单设计器:文件菜单(打开、新建);
2、 命令方式:CREATE FORM MODIFY FORM 对象操作与编码:添加对象、设置属性、编制事件代码和方法程序代码等; 保存表单:文件/保存(不关闭设计器) Ctrl+W 窗口关闭按钮 产生两个文件:表单文件( .SCX)和表单备注文件(.SCT) 执行表单: 程序/运行 DO FORM 快捷菜单(返回表单设计器) 表单文件和表单备注文件必须同时存在才能正确运行。,4. 表单设计常用的工具栏 表单控件工具栏:用于在表单上创建控件。 布局工具栏:用于放置控件、调整控件大小、对齐。 调色板工具栏:用于指定控件的前景色和背景色。 表单设计器工具栏:包括设置Tab键次序、数据环境、属性窗口、代
3、码窗口、上述3个工具栏、表单生成器、自动格式等按钮。 工具栏的显示:通过 “显示”下拉菜单进行选择。 另外,属性窗口、代码窗口也是在表单设计中常用的。,5. 数据环境设计器 数据环境:泛指定义表单或表单集时使用的数据源,包括表、视图和关系。可随表单的打开或运行自动打开,随表单的关闭或释放自动关闭。 数据环境设计器的作用:用于可视化地创建或修改数据环境。利用“数据环境”菜单命令,可添加、移去、浏览表和视图,在父表和子表之间建立关联等。,6. 表单控件工具栏的使用 首尾两排4个按钮是辅助按钮,其余都是控件定义按钮。 (1)创建控件 (2)控件基本操作 选定控件,复制、移动、删除,改变大小、对齐等。
4、 作为控件定位参考,表单上可显示网格线(显示/网格线),网格线刻度可调整(格式/设置网格刻度),可设置对齐网格线(格式/对齐格线) (3)辅助按钮的使用 选定对象:可选定表单上控件或表示可创建控件。 查看类:用于切换表单控件工具栏(“常用”/“ActiveX控件”)或添加控件按钮。 生成器锁定:为添加控件锁定相应的生成器,添加时自动打开。 按钮锁定:用于连续创建若干个相同控件。,5.2面向对象的基本概念,1对象 (1)对象 对象(Object)是反映客观事物属性及行为特征的描述。每个对象都具有描述其特征的属性,及附属于它的行为。对象把事物的属性和行为封装在一起,是一个动态的概念。对象是面向对象
5、编程的基本元素,是“类”的具体实例。,(2)对象的三要素 1)属性 属性(Attribute)是用来描述和反映对象特征的参数。对象的每一种属性,都有与其它对象加以区别的特性,都具有一定的含义,并赋予一定的值。 对象的属性窗口及常用属性 属性窗口用于显示、修改当前对象的属性,定义事件代码,修改方法程序。 属性窗口的组成:对象列表框(用于选择对象);选项卡;属性设置框(用于更改属性);属性列表框;属性说明信息。 访问格式:对象引用.属性,常用的表单属性,2)方法 方法(Method)也叫“方法程序”。是指对象完成某种任务所固有的功能。可由用户在需要时调用。是附属于对象的行为和动作,是为对象内定的通
6、用过程。 调用格式:对象引用.方法 (参数名表) 常用的方法有: Cls 清除表单中的图形与文本 Hide 通过修改Visable属性来隐藏表单(集)或工具栏 Refersh 重新绘制表单或控件并刷新所有值 Release 从内存中释放表单或表单集 Show 显示表单并确定表单是模态的还是非模态的 3)事件 事件(Event) 是每个对象可能用以识别和响应的某些行为和动作。它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。 例如:单击表单时触发了Click事件,屏幕显示提示:你单击了表单。可以在表单的Click事件中写入代码:MessageBox(“你单击了表单”).,常见事件,
7、在面向对象的程序设计中,要引用其中的某个对象,必须指出对象在嵌套层次中的位置,如同我们标识一个文件一样。 1. 引用规则(引用关键字开头,逐级引用) 格式:引用关键字.对象名(或对象的属性、事件、方法程序) 2. 设置属性值(编程方式) 格式: 对象.属性=值 例如:ThisForm.Caption=“退出” 例: ThisForm.text1.value=date() 颜色设置 RGB 例: ThisForm.backcolor=rgb(0,255,255)青 3. 方法程序的调用 通常在事件代码中调用。 格式:对象.方法 例:Thisform.release 释放表单,(3).对象的引用,
8、2类,所谓类(Class),就是一组相似对象的属性和行为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。在Visual FoxPro系统中,类就像是一个模板,对象都是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。Visual FoxPro系统为用户提供的32个基类见下表:,(1)基类 基类又可以分成容器类和控件类。 容器类可以容纳其它对象,并允许访问所包含的对象。如表单,自身是一个对象,它又可以把按钮、编辑框、文本框等放在表单中。 控件类不能容纳其它对象,它没有容器类灵活。如文本,自身是一个对象,在文本中不可放其它对象。由控件类创造的对象,
9、是不能单独使用和修改的,它只能做为容器类中的一个元素。,父类,子类,子类,继承性,继承的方法与属性,添加的方法与属性,方法,属性,类具有继承性、封装性和多态性等特性。,对象的操作,类是对象的抽象,对象是类的实例。因此,对象的过程代码的设计是最重要的操作之一。我们可以利用程序代码,在类的基础上派生出对象的属性、方法和事件,或进行重新设计。对象的属性、方法和事件决定了对象的操作功能,下面将介绍一些有关对象的基本操作的代码。 1.由类创建对象 对象是在类的基础上派生出来的,而只有具体的对象,才能实现类的事件或方法的操作。 可使用函数:CREATEOBJECT()创建对象。命令格式如下: 对象名=CR
10、EATEOBJECT(类名) 如:FORM1=CREATEOBJECT(FORM) 注意:如是通过自定义类库而不是基类创建对象,则必须用SET CLASSLIB TO 打开才能使用。,2.设置对象的属性,设置代码的语法如下: 对象的父类名.当前对象名.属性名=属性值 如:FORM1.CAPTION=演示表单 FORM1.NAME=FORM1 由于每个对象可以有多个属性,进行设置时写出全部路径非常麻烦,所以Visual FoxPro系统还给我们提供了另一个设置对象属性值的语句。 其格式为: WITH ENDWITH,3.调用对象的方法和触发对象的事件 (1)调用对象的方法 调用对象的方法为: 父
11、类名.对象名.方法名 (2)触发对象的事件 事件与方法不同,只有当事件发生后,对应的事件代码被执行。 可以通过命令按钮触发事件;或使用鼠标产生单击、双击和移动、拖放等事件;或使用Keyboard命令产生Keypress事件。,思考题与实验题,思考题 1什么是对象、类、属性、事件和方法? 2常用的基类有哪些? 3叙述类的继承性和封装性的主要特征。 4如何设置对象的属性? 5如何设置类和属性?,实验题 1用类设计器设计创建新类。 2用程序创建新类。 3通过编程设计对象,并执行程序。,6.3表单设计及运行,本 章 要 点,建立表单 修改表单 运行表单 表单控件 1 无控件表单 2 “标签”控件 3
12、“计时器”控件 4 “命令按钮”控件 5 “文本框”控件 6 “组合框”控件 7 “单选按钮”控件 8 “微调”控件 9 “复选框”控件 10 “图像”控件 11 “表格”控件 12 “命令按钮组”控件 13 设计多页表单,“表单设计器”窗口,“属性”窗口,“表单控件”工具栏,“表单设计器” 工具栏,“表单”菜单,空白表单,表单设计器窗口,设计“标签”控件表单,1. 标签(label) “标签”控件主要用于在表单上显示文本信息,常用作提示或说明。,标签,标签,常用属性: Caption: 显示文本信息的标题 AutoSize:根据标题文本自动调整标签大小(.F.) WordWrap:能否自动换
13、行(.F.) BackColor:背景色 BackStyle:标签是否透明(0:透明, 1:不透明) BorderStyle:边框样式(0:无, 1:固定单线) Visible: 标签是否显示出来(.T.) Fontsize: 标题文字的字体大小 Forecolor:标题文字的颜色 Aligment: 标题文字对齐方式(0:左, 1:右, 2:居中) Name: 对象名称, 主要用于对象的引用 常用事件: 单击(click) 初始化(init),【例】 建立一表单,在表单上添加一个标签控件,显示文字为:VFP标签示例;字的大小:16。运行时单击标签,标签文字修改为:Visual FoxPro
14、6.0标签示例。,设计步骤如下: 创建表单。在表单上添加一个标签控件。 设置标签控件属性:Caption为:VFP标签示例,FontSize为16,AutoSize为.T.。 双击标签控件,编辑标签Click事件代码:ThisForm.Label1.caption=Visual FoxPro 6.0标签示例 保存表单文件BD1.SCX。 单击工具栏“运行”按钮,执行BD1.SCX。运行结果如图所示。,计时器控件,设计“计时器”控件表单,“计时器”控件允许在指定时间内周期性地自动地执行其Timer事件代码。计时器在表单设计过程中是可见的,但在运行时不可见,它的位置和大小都无关紧要。 “计时器”控
15、件主要有两个属性,即Interval属性和Enabled属性。Interval属性用于定义两次计时器事件触发的时间间隔(毫秒级);Enabled属性为真(.T.)表示启动计时器,Enabled=.F.表示终止计时器。表单示意图:,计时器示例,计时器示例-滚动文字,Interval属性:50 Enable属性:.T. Timer事件代码:(向左) If ThisForm.Label1.left1 ThisForm.Label1.left= ThisForm.Label1.left-2 Else ThisForm.Label1.left= 420 Endif,命令按钮及命令按钮组(CommandG
16、roup)控件设计“命令按钮”控件表单,命令按钮,命令按钮,“红”按钮Click代码: ThisForm.BackColor=rgb(255,0,0) “绿”按钮Click代码: ThisForm.BackColor=rgb(0, 255, 0) “蓝”按钮Click代码: ThisForm.BackColor=rgb(0,0,255) “退出”按钮Click代码: ThisForm.Release,rgb( ) 颜色函数 根据一组红、绿、蓝颜色成份返回一个单一的颜色值。Rgb(,) 注:色值范围在0255之间,设计“文本框”控件表单,文本框,文本框(textbox) 主要用于显示和编辑一个变
17、量或者一个字段的值。所有Visual FoxPro标准的编辑功能,比如剪切、复制、粘贴,都可用于文本框。 常用属性,常用事件,常用方法,可用 (enabled),获得焦点 失去焦点 (gotfocus) (lostfocus),自动选定 (SelectOnEntry),Value:指定文件框的值,并显示。其值的类型可以为N型、C型、D型、T型、L型。也可以用命令方式设置,如:ThisForm.Text1.Value=“(0551)5169268” InputMask:掩码输入。规定在文本框中如何输入和显示数据。由若干格式符组成: X允许输入任何字符 9只允许输入数字和正负号 *在数值左边显示*
18、号 #允许输入数字、正负号和空格 如: InputMask设置为99,999.99时,则只能输入具有两位小数且小于100000的数值。,ControlSource:数据绑定。设置ControlSource则显示在文本框中的值除了保存在Value属性中,同时也保存在ControlSource属性指定的数据表字段或内存变量中。 例:略 PasswordChar:控制是否显示用户实际输入的数据。设置为*时,只显示相同个数的*。 Valid:在Valid中写入代码,检验文本框中的值是否有效。如果值无效,则返回逻辑假(.F.)。并会在屏幕上显示“无效输入”信息。也可在文本框的Valid 事件代码中使用M
19、ESSAGEBOX( )函数自定义一个对话框。,【例】 创建一个如图所示的登录界面,标题为:登录窗口;操作时若未输入用户名将弹出一个对话框显示“必须输入用户名!”;输入的口令限定为6位数字,假定口令是“123456”,但显示6个“*”;如果操作正确,则弹出“祝贺登录成功”画面,并释放表单。,创建一个表单FORM1,标题为:登录窗口;然后在表单上添加两个标签Label1、Label2,两个文本框Text1、Text2。 设置Label1、Label2的Caption属性分别为:用户名、口令。 Text2的InputMask属性值为:999999;PasswordChar属性值为:*号。 双击Te
20、xt1控件的Valid Event属性,编写Text1对象的Valid过程代码如下: IF EMPTY(ThisForm.Text1.Value) MESSAGEBOX(“必须输入用户名!”,”验证用户口令”) RETURN .F. ENDIF,同样方法,编写Text2对象的Valid过程代码如下: IF ThisForm.Text2.Value=123456 MESSAGEBOX(祝贺登录成功!,欢迎光临) ThisForm.RELEASE ENDIF 保存表单,名称为BD2.SCX,并运行表单。,编辑框(EDITBOX),用于输入或编辑文本数据。常用于多段长文本和备注型字段内容的输入和编辑
21、。 常用属性,【例】 创建一个表单,添加一个编辑框Edit1和文本框Text1,将数据表DA.DBF中的“简历”字段与编辑框绑定,以便编辑备注型字段内容。当在编辑框中选定一段内容并单击文本框Text1时,则在文本框中显示所选内容。,创建表单,在表单上添加两个标签Label1、Label2,Caption属性分别为:简历、所选内容。再添加一个编辑框Edit1和一个文本框Text1。 在数据环境设计器中添加表:DA.DBF,再将Edit1的ControlSource属性与DA.DBF中的备注字段“简历”绑定。 双击编辑框Edit1,选择LostFocus过程,编写焦点离开时代码如下: ThisFo
22、rm.Edit1.HideSelection=.F. 双击文本框Text1,选择GotFocus过程,编写焦点移至时代码如下: This.Value= ThisForm.Edit1.SelText 保存表单,名称为BD3.SCX,并运行表单。,设计“单选按钮”OptionGroup控件表单,单选按钮,表单示意图,【例】 创建如图5-53所示表单,定义一个名称为“OptionGroup1”的单选按钮组,所含按钮个数为4,标题依次为“宋体”、“隶书”、“黑体”和“幼圆”,当选中某个按钮时,文本框中的字体发生相应的变化,用Do Case结构编写“OptionGroup1”的Click事件代码;,在控
23、件窗口中选择单选按钮组控件,在表单的适当位置拖放,在该控件的属性窗口中,将ButtonCount设置为4,其中四个选项按钮的Caption分别设置为“宋体”、“隶书”、“黑体”和“幼圆”,单选按钮组Click事件代码如下:do case case this.value=1 thisform.text1.fontname=宋体 case this.value=2 thisform.text1.fontname=隶书 case this.value=3 thisform.text1.fontname=黑体 case this.value=4 thisform.text1.fontname=幼圆 e
24、ndcase 保存表单,并运行表单。,设计“复选框”CheckBox控件表单,复选框允许同时选择多项,当处于“真”状态时,复选框内显示一个对勾();否则,复选框内为空白。主要属性: 1Value属性用来指明复选框的当前状态。复选框的Value属性值的设置有如下三种情况: 0或.F. 未被选中(默认) 1或.T. 被选中 2 灰色,只能通过代码设置 2Style属性复选框的外观: 0 方框按钮(标准样式,默认值),右侧显示Caption文本,选中出现“”标记。 1 图形按钮,在Picture属性指定为图形时,Caption文本图形下方,选中按钮呈按下。若Picture属性未指定为图形时,为文本按
25、钮。,复选框,复选框表单设计示例,设计“微调”Spinner控件表单,微调,“微调”控件可在控件框中输入或选择一个值,主要属性有:KeyBoardHighValue、 KeyBoardLowValue、Increment、Value,分别用于表示:最大值、最小值、增减值与初始值。表单示意图:,列表框(LISTBOX)与组合框(ComboBox),主要用于提供选项列表。前者始终显示列表选项供选择;后者通常仅显示一项,单击下拉钮才显示下拉列表。 组合框又有下拉组合和下拉列表两类,前者除有选项功能外还可输入,后者则与列表框相同,仅有选项功能。 常用属性 Rowsource:指定值的来源 Rowsou
26、rcetype:选项类型,1:值,2-别名,3-SQL,4-查询,5:数组,6:字段,7-文件,8-结构,9-弹出式菜单 (1)使用列表框生成器设置列表框常用属性 指定选项:字段内容、输入数值、数组值 指定样式:列表框的外观 设置列宽 指定返回值及存储,(2)使用组合框生成器设置组合框常用属性 Style属性:0:下拉组合,1:下拉列表 几个有用的属性: ListCount:返回选项个数 ListIndex: 返回或设置选定项序号 Selected:判断选定否,.T.为选定,.F.为未选定 Value:返回列表中选定项的值 DisplayValue:返回组合框中输入的文本 List:返回指定行
27、、列位置的选项内容,例,定义一个名称为“Command1”,标题为“开始”的按钮,当单击该按钮时,将1到20之间的数显示在列表框“List1”中,编写其Click事件代码; FOR I=1 TO 20 THISFORM.LIST1.additem(str(I) ENDFOR,设计“组合框”控件表单,列表框在任何时候都能看到多个条目;而在下拉列表中,用户只能看到一个条目,单击向下的按钮可显示滚动的下拉列表框。而组合框用户可以单击下拉组合框上的按钮查看选择项的列表,也可直接在按钮旁边的框中直接输入一个新项。表单示意图:,它们常用的属性和方法有: 1RowSourceType属性与RowSource
28、属性 这两个属性在设计和运行时可用。RowSourceType属性指明列表框条目中数据源的类型,RowSource属性指定列表框的条目数据源。RowSourceType属性的取值范围及含义如下表所示。,(续表),2List属性 用以存取框中数据条目的字符串数组。如: (1)读取列表框中第3个条目第1列上的数据项。 Var= ThisForm.mylist.lsit(3) (2)重新将列表框中第3个条目第2列上的数据项设置为“OK”。 This.Form.mylist.list(3,2)=”OK” 3ListCount属性指明列表框中数据条目的数目。 4ColumnCount属性指定列表框的列数
29、。 5Value属性返回列表框中被选中的条目。该属性可以是数值型,也可以是字符型。若为数值型,返回的是被选条目在列表框中的次序号。若为字符型,返回的是被选条目的本身内容,如果列表框不止一列,则返回由BoundColumn属性指明的列上的数据项。 6ControlSource属性可指定一个字段或变量用以保存用户从列表框中选择的结果。,7Selected属性指定列表框内的某个条目是否处于选定状态。比如下面代码用以判断第三个条目是否被选中。 If ThisForm.List1.Selected(3) WAIT 已被选中! WIND Else WAIT 未被选中! WIND Endif 8MultiS
30、elect属性指定用户能否在列表框控件内进行多重选定。该属性的设置情况为:0或.F.,不允许多重选择(默认);1或.T.,允许多重选择。该属性在设计时可用,在运行时可读写,仅适用于列表框。 9AddItem方法给RowSourceType属性为0的列表中添加一项。如:ThisForm.List.RowSourceType=0 ThisForm.List.AddItem(联想) ThisForm.List.AddItem(浪潮) 10RemoveItem方法从RowSourceType属性为0的列表中删除一项。如:ThisForm.List. RemoveItem(2),设计“图像”控件表单,“
31、图像”控件主要用于把.BMP、.GIF、JPG类型的文件添加到表单上,“图像”控件可以在程序运行的动态过程中加以改变。 “图像”控件的“Stretch”属性定义了图像的三种显示方式:当“Stretch”属性值为“0时”,将把图像的超出部分裁剪掉;当“Stretch”属性值为“l”时,等比例填充;当“Stretch”属性值为“2”时,变比例填充。表单示意图:,图像,最主要的属性: Picture:指定要显示的图象。 代码方式:图形对象. Picture=“图象文件名”,设计“表格”控件表单,表格是一种二维表形式的容器对象。一个表格对象由若干列对象(Column)组成,每个列对象包含一个标头对象(
32、Header)和若干控件。表格、列、标头和控件都有自己的属性、事件和方法。 1表格设计基本操作 一旦指定了表格的列的具体数目(表格的ColumnCount属性值不是-1),就可以有两种方法来调整表格的行高和列宽。一是通过设置表格的HeaderHeight和RowHeight属性调整行高、通过设置列对象的Width属性调整列宽;二是让表格处于编辑状态下,然后通过鼠标拖动操作可视地调整表格的行高和列宽。 要切换到表格编辑状态,可选择表格快捷菜单中的“编辑”命令,或在属性窗口的对象框中选择表格的一列。此时表格的周围有一个粗框。 在表格编辑状态下,将鼠标指针置于两表格列的标头之间或左侧的第一个按钮和第
33、二个按钮之间,当鼠标指针变成水平双箭头或垂直双箭头的形状时拖动鼠标,可调整列宽或行高。,表格设计也可以调用表格生成器来进行。通过表格生成器能够交互式地快速设置表格的有关属性,创建所需要的表格。使用生成器生成表格的步骤是: (1)通过“表单控件”工具栏在表由上放置一个表格; (2)用鼠标右键单击表格并在弹出的快捷菜单中选择“生成器”命令,打开“表格生成器”对话框。对话框包括四个选项卡,其作用大致如下: “表格项”选项卡:指明要在表格内显示的字段。 “样式”选项卡指定表格的样式,如标准型、专业型、账务型等。 “布局”选项卡:指明各列的标题和控件类型、调整各列列宽。 “关系”选项卡:设置一个一对多关系,指明父表中的关键字段与子表中的相关索引。 (3)在对话框内设置有关选项参数。当设置完后按“确定”键关闭对话框返回时,系统就会根据指定的选项参数设置表格的属性。,2常用的表格属性 (1)RecordSourceType属性与RecordSource属性 RecordSourceType属性指明表格数据源的类型,RecordSourceType属性的取值范围及含义如下表所示。,RecordSource属性指定表格数据源。设置了表格的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 修订完善单位内控制度
- 甘肃省内控制度
- 县科技局内控制度
- 经济领域内控制度
- 出纳内控控制制度
- 市人防办内控制度
- 疾控科内控制度
- 健全建设项目内控制度
- 公司税务方面内控制度
- 深圳中学内控制度
- (新版)特种设备安全管理取证考试题库(浓缩500题)
- 调解实操指南:成为金牌调解员-笔记
- GB/T 27604-2024移动应急位置服务规则
- 苏教译林版五年级上册英语第八单元Unit8《At Christmas》单元测试卷
- 《合同能源管理介绍》课件
- 电力系统继电保护教案
- 《社会调查研究与方法》课程复习题-课程ID-01304试卷号-22196
- GB/T 43316.3-2023塑料耐环境应力开裂(ESC)的测定第3部分:弯曲法
- 科研伦理与学术规范-课后作业答案
- 2021年高考语文浙江卷现代文阅读《麦子》试题及答案
- 顶管工程施工检查验收表
评论
0/150
提交评论