第3章VisualFoxPro的可视化编程3.1对象3.2VisualFoxPro可视化编程的步骤3.3控件的画法3.1对象对象是面向对象程序设计的基本单元,是代码和数据的集合,是一种将数据和操作过程结合在一起的数据结构。常见的对象有表单、文本框、命令按钮等。对象是一个具有属性(数据)和方法(行为方式)的实体。一个对象建立以后,其操作就通过与该对象有关的属性、事件和方法来描述。3.1.1对象的属性、事件与方法1.对象的属性属性描述了对象的各种特征和状态。例如表单对象的标题、高度、宽度、背景等。通过修改或设置某些属性能控制对象的外观和操作。属性值的设置或修改可以通过属性窗口来进行,也可以在程序中通过编写代码,使其在程序运行时进行设置或修改。在程序中设置属性的一般格式是:表单名.对象名.属性名=属性值2.对象的方法方法是对象可执行的操作,方法是与对象相关联的,可看成属于对象的过程(可被调用的一段程序)。VFP为不同对象定义了不同的多种方法称为内部方法,如表单的“刷新”方法是refresh。用户可根据需要来调用,另外用户也可以为对象创建新的方法。方法有特定的调用形式。【格式】对象.方法名【例如】表单对象调用“刷新”方法:thisform.refresh3.对象的事件可被对象识别和响应的动作称为事件。每个对象都预先定义多个它可以接受的事件,当用户对对象进行某种操作时,就会发生相应的事件,从而引发这个事件所对应的事件过程的运行。如命令按钮的单击事件是click。每种对象都有一个事件集合,对象的事件是固定的,用户不能创建新的事件。3.1.2控件与对象1.常用控件和内部对象常用控件由VFP的基类提供,共21个,每个控件用“表单控件”工具栏中的一个图形按钮表示,见表3-1。图标名称说明标签(Label)创建一个标签对象,用于保存不希望用户改动的文本,如复选框上面或图形下面的标题文本框(TextBox)创建用于单行数据输入的文本框对象,用户可以在其中输入或更改单行文本表3-1编辑框(EditBox)创建用于多行数据输入的编辑框对象,用户可以在其中输入或更改多行文本命令按钮(CommandButton)创建命令按钮对象,用于执行命令命令按钮组(CommandGroup)创建命令按钮组对象,用于把相关的命令编成组选项按钮组(OptionGroup)创建选项按钮组对象,用于显示多个选项,用户只能从中选择一项复选框(CheckBox)创建复选框对象,允许用户选择开关状态,或显示多个选项,用户可从中选择多于一项组合框(ComboBox)创建组合框或下拉列表框对象,用户可以从列表项中选择一项或人工输入一个值列表框(ListBox)创建列表框对象,用于显示供用户选择的列表项。当列表项很多,不能同时显示时,列表可以滚动微调(Spinner)创建微调对象,用于接受给定范围之内的数值输入表格(Grid)创建表格对象,用于在电子表格样式的表格中显示数据图像(Image)创建图像对象,在表单上显示图像计时器(Timer)创建计时器对象,以设定的时间间隔捕捉计时器事件。此控件在运行时不可见页框(PageFrame)创建页框对象,显示多个页面ActiveX(ActiveXControl)创建OLE容器对象,向应用程序中添加OLE对象ActiveX绑定型(ActiveXBoundControl)创建OLE绑定型对象,可用于向应用程序中添加OLE对象。与OLE容器控件不同的是,OLE绑定型控件绑定在一个通用字段上线条(Line)创建线条对象,设计时用于在表单上画各种类型的线条形状(Shape)创建形状对象,设计时用于在表单上画各种类型的形状。可以画矩形、圆角矩形、正方形、圆角正方形,椭圆或圆容器(Container)创建容器对象,在容器中可以包含其他的控件分隔符(Separafor)创建分隔符对象,在工具栏的控制间加上空格超级链接(HyperLink)使用“超级链接”可以跳转到Internet或Intranet的一个目标地址上2.表单对象(1)表单的结构(2)表单的属性常用的表单属性如下表所示。属性名作用AutoCenter用于控制表单初始化时是否总是位于VFP窗口或其父表单的中央BackColor用于确定表单的背景颜色BorderStyle用于控制表单是否有边框:系统(可调)、单线、双线Caption表单的标题Closable用于控制表单的标题栏中的关闭按钮是否能用ControlBox用于控制表单的标题栏中是否有控制按钮MaxButton用于控制表单的标题栏中是否有极大化按钮MinButton用于控制表单的标题栏中是否有极小化按钮Movable用于控制表单是否可移动TitleBar用于控制表单是否有标题栏WindowState用于控制表单是极小化、极大化还是正常状态WindowType用于控制表单是模式表单还是无模式表单(默认),若表单是模式表单,则用户在访问Windows屏幕中其他任何对象前必须关闭该表单(3)表单的事件与方法常用的表单事件:表单开始运行时有关事件发生的顺序是:load、init、activateload事件:当表单被装入内存时发生init事件:当表单被初始化时发生activate事件:当表单被激活时发生。表单退出时有关事件发生的顺序是:unload、destroydestroy事件:当表单被释放时发生unload事件:当表单被关闭时发生常用的表单方法:Release方法:释放表单Refresh方法:刷新表单3.对象的引用表单中的对象分为两类:容器类对象和控件类对象其中可包含某些对象的对象称为容器类对象,如表单、命令按钮组、选项按钮组、表格、页框等。不能包含任何对象的对象称为控件类对象,如标签、命令按钮、文本框等。容器能包含的对象命令按钮组命令按钮容器任意控件自定义任意控件、页框、容器、自定义对象表单集表单、工具栏表单页框、任意控件、容器或自定义对象表格列标头对象以及除了表单集,表单,工具栏,计时器和其他列对象以外的任意对象表格表格列选项按钮组选项按钮页框页面页面任意控件、容器和自定义对象工具栏任意控件、页框和容器表3-3容器类对象所能包含的对象formText1Text2OptionGroujpOption1Option2PageFramePageGridCommand3Command4ColumnHeaderControl6Command5(1)对象的包容层次Command1Command22.对象的引用(绝对引用、相对引用)(1)绝对引用指从窗口的最外层开始,一层层向内,标识出与其关联的容器层次。例:Form.PageFrame.Page.Grid.Column.Control6.Enabled=.F.(2)相对引用指使用相对引用关键字来引用对象。相对引用关键字有:Parent是引用对象的直接容器类;This表示该引用对象;ThisForm表示包含该对象的表单;ThisFormset表示包含该对象的表单集。例:THIS.Caption=“OK”THIS.Parent.BackColor=RGB(192,0,0)3.2VisualFoxPro可视化编程用户是通过界面了解和使用应用软件的,设计能让人“一见钟情”的、引人入胜的界面是任何软件开发者都孜孜以求的。对界面的制作和修饰要精益求精,以赢得用户对应用软件的良好印象和使用兴趣。VFP的用户界面是通过一个个表单来实现的,最开始的表单应通过设计的主标题明确制作的是什么系统;通过副标题明确系统的设计单位或设计人;界面应有明确的系统入口、出口或界面执行后的上一步、下一步;开始界面一般要在用户点击“进入系统”后完成对口令的测试,以确定不同用户对系统的使用权限。VFP可视化编程的一般步骤为:①设置数据环境如果表单中要使用表,应先将表添加到数据环境中。②添加对象建立应用程序的用户界面,主要是建立表单,并在表单上安排应用程序所需的各种对象(由控件创建)。③修改属性设置各对象(表单及控件)的属性。④编写代码编写方法及事件过程代码。⑤运行表单