1、Visual FoxPro1isualFVoxProVisual FoxPro2本节要求本节要求1.目的、要求目的、要求(1)掌握面向对象程序设计的基本概念:类、对象、掌握面向对象程序设计的基本概念:类、对象、事件、方法、属性事件、方法、属性(2)了解面向对象程序设计思想了解面向对象程序设计思想(3)了解面向对象程序设计的设计方法了解面向对象程序设计的设计方法2.重点、难点重点、难点重点:面向对象程序设计基本概念的理解。重点:面向对象程序设计基本概念的理解。难点:面向对象程序设计的设计方法。难点:面向对象程序设计的设计方法。总总 学学 时:时:理论(理论(2 2学时)学时)Visual Fox
2、Pro34.2 4.2 面向对象程序设计和可视化面向对象程序设计和可视化设计工具使用设计工具使用面向过程程序设计:就是前面所介绍的结构化程序设计,面向过程程序设计:就是前面所介绍的结构化程序设计,结构化程序设计强调了功能抽象和模块性,它将解决问题的过结构化程序设计强调了功能抽象和模块性,它将解决问题的过程看作是一个处理过程。数据和施加于数据上的操作是分别设程看作是一个处理过程。数据和施加于数据上的操作是分别设计的,以对数据进行操作的过程作为程序的主体。计的,以对数据进行操作的过程作为程序的主体。4.2.1 面向对象程序设计的基本思面向对象程序设计的基本思想与想与VFP的实现方法的实现方法1.面
3、向对象程序设计的基本思想面向对象程序设计的基本思想Visual FoxPro4面向对象程序设计:将数据及对数据的操作放在一起,作面向对象程序设计:将数据及对数据的操作放在一起,作为一个相互依存,不可分割的整体来处理,它将对象及对对象为一个相互依存,不可分割的整体来处理,它将对象及对对象的操作抽象成对象属性和对象方法,这些对象的属性就是要处的操作抽象成对象属性和对象方法,这些对象的属性就是要处理的数据,而对象的方法就是对这些数据进行操作,面向对象理的数据,而对象的方法就是对这些数据进行操作,面向对象程序设计就是通过对对象属性方法的设置,达到对对象操作的程序设计就是通过对对象属性方法的设置,达到对
4、对象操作的目的。目的。基本概念:对象、类、子类、继承、属性、方法、事件等。基本概念:对象、类、子类、继承、属性、方法、事件等。面向对象程序设计:面向对象程序设计:Object Oriented Programming简称为简称为OOP(1)对象(对象(Object)对象(对象(Object):是组成程序的构件。作为程序构件的):是组成程序的构件。作为程序构件的“对对象象”是对现实世界中一个实体的一种模拟工具。例如:一个人,是对现实世界中一个实体的一种模拟工具。例如:一个人,一个命令按钮等都是对象。一个命令按钮等都是对象。Visual FoxPro5对象是反映客观事物属性及行为特征的描述。每个对
5、象都对象是反映客观事物属性及行为特征的描述。每个对象都具有描述它的特征的属性,及附属于它的行为。一个人有姓名、具有描述它的特征的属性,及附属于它的行为。一个人有姓名、性别、出生年月,命令按钮有高度、宽度、颜色等。性别、出生年月,命令按钮有高度、宽度、颜色等。每个对象有自己的行为:如人可以站立、行走,命令按钮每个对象有自己的行为:如人可以站立、行走,命令按钮可以单击、双击等。可以单击、双击等。(2)属性(属性(ATTRIBUTE)属性:是对象的一组特征数据。属性:是对象的一组特征数据。每个对象都有多个属性来描述,不同的对象可以有相同每个对象都有多个属性来描述,不同的对象可以有相同的属性,但必须有
6、不同的属性值来区分他们。的属性,但必须有不同的属性值来区分他们。例如:一个人有姓名、年龄、身高、体重等属性,对象张例如:一个人有姓名、年龄、身高、体重等属性,对象张三和对象李四具有相同的属性,但他们有不同的属性值,至少三和对象李四具有相同的属性,但他们有不同的属性值,至少一个姓名属性值为一个姓名属性值为“张三张三”,另一个为,另一个为“李四李四”。Visual FoxPro6 在在Visual FoxPro中,一个对象的属性就是该对象的一项中,一个对象的属性就是该对象的一项数据特性。数据特性。例如:一个标签对象例如:一个标签对象Label1,有字体(,有字体(FontSize)、标题)、标题(
7、Caption)、字体大小()、字体大小(FontSize)等属性,同样,不同的标)等属性,同样,不同的标签对象间,必定有不同的属性值来区分它们。签对象间,必定有不同的属性值来区分它们。(3)事件事件(Event)与方法与方法(Means)事件:事件是对象可能作出的行为或动作,属于对象的事件:事件是对象可能作出的行为或动作,属于对象的静态特征。它是预先定义好的动作,通过用户的操作或系统来引静态特征。它是预先定义好的动作,通过用户的操作或系统来引发,事件是通过用户的交互操作产生的。在发,事件是通过用户的交互操作产生的。在VFP统中,对象可以统中,对象可以响应响应50多种事件。多种事件。例如:一个
8、人的坐、立、走都是人可以作出的动作。如命例如:一个人的坐、立、走都是人可以作出的动作。如命令按钮的事件,系统规定了包括了单击(令按钮的事件,系统规定了包括了单击(click)、右键单击)、右键单击(rightclick)等。)等。Visual FoxPro7 方法:对象的方法是对于对象行为的描述。方法:对象的方法是对于对象行为的描述。VFP中每个对象都可以有若干个方法,相同类型的对象具中每个对象都可以有若干个方法,相同类型的对象具有相同的方法,不同类型的对象也可以具有相同的方法。有相同的方法,不同类型的对象也可以具有相同的方法。事件与方法的区别和联系事件与方法的区别和联系事件和方法是两个不同的
9、概念。事件和方法是两个不同的概念。事件:是预先定义好的动作,是由用户或系统引发的,是事件:是预先定义好的动作,是由用户或系统引发的,是先有用户的操作,然后才有事件的发生;先有用户的操作,然后才有事件的发生;方法:方法可以看作是对象具有的行为能力,它是对象用方法:方法可以看作是对象具有的行为能力,它是对象用来实现某一任务的途径。来实现某一任务的途径。例如:在对象上单击鼠标会执行一个相应的命令或一段相例如:在对象上单击鼠标会执行一个相应的命令或一段相应的程序,则有这个命令或这段程序就是这个对象的方法。应的程序,则有这个命令或这段程序就是这个对象的方法。Visual FoxPro8正常情况下,激活一
10、个事件,将执行相应的方法。正常情况下,激活一个事件,将执行相应的方法。如果这个事件没有事先定义,则不可能发生这个事件;如果这个事件没有事先定义,则不可能发生这个事件;如果定义了事件,而事件的方法没有事先设置,则对对象如果定义了事件,而事件的方法没有事先设置,则对对象发生事件时不会有任何反映。发生事件时不会有任何反映。方法靠事件进行引发,所以二者是相互依赖,相辅相成的。方法靠事件进行引发,所以二者是相互依赖,相辅相成的。例如:乘客登上飞机,触发了一个例如:乘客登上飞机,触发了一个“登机登机”的事件;飞机的事件;飞机在飞行,是飞机这个对象,在执行在飞行,是飞机这个对象,在执行“飞行飞行”这个方法,
11、飞机具这个方法,飞机具有飞行的能力。有飞行的能力。所以所以“登机登机”是一个事件,而是一个事件,而“飞行飞行”则是方法。则是方法。事件与方法紧密联系事件与方法紧密联系Visual FoxPro9 类的定义类的定义“类类”:是具有相同属性特征和行为规则的多个:是具有相同属性特征和行为规则的多个“对象对象”的一种统一描述。的一种统一描述。类就是对一类相似对象的属性和行为特征的抽象描述。或类就是对一类相似对象的属性和行为特征的抽象描述。或者说,类是具有共同属性、共同操作性质的对象的集合。在者说,类是具有共同属性、共同操作性质的对象的集合。在VFP系统中,类就像是一个模板,对象都是由类生成的,类定义了
12、对系统中,类就像是一个模板,对象都是由类生成的,类定义了对象所有的属性、事件和方法,从而决定了对象的属性和它的行为。象所有的属性、事件和方法,从而决定了对象的属性和它的行为。VFP系统为用户提供系统为用户提供29个基类。个基类。对于一个学校的全体学生,描述其特征的数据模式是相同对于一个学校的全体学生,描述其特征的数据模式是相同的。行为规则有不同的地方,也有相同的地方。但如果将行为的的。行为规则有不同的地方,也有相同的地方。但如果将行为的选择加以一些限制,将引起学生反映的外部事件归纳为:选择加以一些限制,将引起学生反映的外部事件归纳为:(4)类(类(Class)Visual FoxPro10 当
13、一个学年度不及格科目超过学校规定时,这一部分当一个学年度不及格科目超过学校规定时,这一部分学生应该留级或受到警示。学生应该留级或受到警示。完成规定科目的学习并考试合格者,学生的整体反映完成规定科目的学习并考试合格者,学生的整体反映是毕业离校。是毕业离校。一般管理信息系统中,系统的使用者和设计者所关心的问一般管理信息系统中,系统的使用者和设计者所关心的问题正是这样一些共性问题而并非一些很个体的问题,设计者对题正是这样一些共性问题而并非一些很个体的问题,设计者对个体的行为进行分析、归纳、抽象,形成整个群体的共同行为个体的行为进行分析、归纳、抽象,形成整个群体的共同行为规范,并把这种共同的行为规范用
14、程序设计语言描述成程序过规范,并把这种共同的行为规范用程序设计语言描述成程序过程,和描述该群体的特征数据模式一起进行封装,这样就完成程,和描述该群体的特征数据模式一起进行封装,这样就完成了了OOP方法中一个方法中一个“类类”的设计。的设计。一个新学年度到来时,学生的整体反映应该是缴费报一个新学年度到来时,学生的整体反映应该是缴费报到。到。Visual FoxPro11类:是一个数据模式和若干个程序过程(称为类:是一个数据模式和若干个程序过程(称为“方法程方法程序序”、一般一种行为用一个程序过程描述)经封装而形成的一、一般一种行为用一个程序过程描述)经封装而形成的一个整体,它是使用信息技术对现实
15、世界的一种模拟与抽象。个整体,它是使用信息技术对现实世界的一种模拟与抽象。对象:则是对象:则是“类类”的一个实例。的一个实例。用程序设计语言来说,用程序设计语言来说,“对象对象”可以不精确的理解为对一可以不精确的理解为对一个个“类类”赋值的结果。赋值的结果。“对象对象”是是OOP方法中组成程序的一种方法中组成程序的一种构件。构件。总之,从程序设计者的角度观察:总之,从程序设计者的角度观察:类的特性类的特性类具有多态性、封装性、抽象性、继承性等特性。类具有多态性、封装性、抽象性、继承性等特性。多态性:多态性主要是指允许相关的对象对同一消息做出多态性:多态性主要是指允许相关的对象对同一消息做出不同
16、的反应。不同的反应。Visual FoxPro12 封装性:是指类的内部信息对用户是隐蔽的。封装性:是指类的内部信息对用户是隐蔽的。由于类具有封装性,因此不必被类的概念或类的抽象所困扰。由于类具有封装性,因此不必被类的概念或类的抽象所困扰。在使用类时,用户不需熟悉对象内部的复杂性,只需掌握类的使在使用类时,用户不需熟悉对象内部的复杂性,只需掌握类的使用方法。用方法。例如:使用照相机照相时,无需了解照相机是怎样设计的和例如:使用照相机照相时,无需了解照相机是怎样设计的和内部构造,只要会使用即可。类的封装性使应用程序的可用性大内部构造,只要会使用即可。类的封装性使应用程序的可用性大大提高了。大提高
17、了。抽象性:允许用户忽略实施细节,从更高的等级上考虑抽象性:允许用户忽略实施细节,从更高的等级上考虑一个实体。一个实体。继承性:指通过继承关系利用已有的类构造新类。继承性:指通过继承关系利用已有的类构造新类。任何一个基类都有它的属性。即使用户没有定义,任何一个基类都有它的属性。即使用户没有定义,VFP系统系统也赋给基类相应的缺省值。也赋给基类相应的缺省值。继承性(继承性(Inheritance)Visual FoxPro13 对象能自动继承创建它的类的功能。对象能自动继承创建它的类的功能。子类能自动继承父类的功能。子类能自动继承父类的功能。对一个类的改动能反映到它的所有子类中。对一个类的改动能
18、反映到它的所有子类中。2.VFP面向对象思想的实现方法面向对象思想的实现方法VFP提供的设计器提供的设计器表单设计器表单设计器菜单设计器菜单设计器报表设计器报表设计器(1)VFP基类基类在在VFP中,为了实现面向对象的程序设计或创建应用程序,中,为了实现面向对象的程序设计或创建应用程序,系统提供了可以使用的基本类,即系统提供了可以使用的基本类,即VFP基类。基类。这个基类是系统本身内含的,不存于某个类库中。用户可这个基类是系统本身内含的,不存于某个类库中。用户可以基于基类生成所需的对象,也可以创建自己的类。以基于基类生成所需的对象,也可以创建自己的类。217页表页表4.7给出了给出了VFP基类
19、列表。基类列表。Visual FoxPro14VFP中的基类中的基类容器类容器类控件类控件类每一个基类对应表单控件工具栏上的一个图形按钮:每一个基类对应表单控件工具栏上的一个图形按钮:每一个每一个VFP基类都有自己的一套属性、方法和事件。基类都有自己的一套属性、方法和事件。容器类容器类容器类可以包含其他对象,并且允许访问这些对象。容器类可以包含其他对象,并且允许访问这些对象。例如:若创建一个含有两个命令按钮的容器类,而后将该例如:若创建一个含有两个命令按钮的容器类,而后将该类的一个对象加入表单中,那么无论在设计时刻还是在运行时类的一个对象加入表单中,那么无论在设计时刻还是在运行时刻,都可以对该
20、容器中任何一个对象进行单独操作。刻,都可以对该容器中任何一个对象进行单独操作。Visual FoxPro15不仅可以改变命令按钮的位置、标题,也可以在设计阶段不仅可以改变命令按钮的位置、标题,也可以在设计阶段给这个容器添加新对象。给这个容器添加新对象。控件类控件类控件类的封装比容器类更为严密,但也因此丧失了一些灵控件类的封装比容器类更为严密,但也因此丧失了一些灵活性。他不能包含其他对象。活性。他不能包含其他对象。最典型的控件类就是命令按钮、文本。文本自身是一个对最典型的控件类就是命令按钮、文本。文本自身是一个对象,在文本中不可放其它对象。象,在文本中不可放其它对象。容器类虽然在引用时可以视为一
21、个整体,但无论是在设计容器类虽然在引用时可以视为一个整体,但无论是在设计阶段还是在运行阶段,其所包含的对象都是可识别并可以单独操阶段还是在运行阶段,其所包含的对象都是可识别并可以单独操作的。作的。由控件类创造的对象,使用和修改需经容器进行引用。由控件类创造的对象,使用和修改需经容器进行引用。Visual FoxPro16VFP中的对象中的对象容器对象容器对象控件对象控件对象(2)VFP对象对象VFP的对象由基类生成,的对象由基类生成,VFP给出的各种控件工具栏提供给出的各种控件工具栏提供了可以生成对象的按钮,当选择一个按钮在表单上单击或拖动画了可以生成对象的按钮,当选择一个按钮在表单上单击或拖
22、动画出一个控件时,即生成了一个对象。出一个控件时,即生成了一个对象。容器与控件容器与控件控件:是一个以图表化方式显示出来并能与用户进行交互控件:是一个以图表化方式显示出来并能与用户进行交互的对象。控件通常被放置于一个容器里。他不能包含其他对象。的对象。控件通常被放置于一个容器里。他不能包含其他对象。最典型的控件就是命令按钮、文本。文本自身是一个对象,最典型的控件就是命令按钮、文本。文本自身是一个对象,在文本中不可放其它对象。在文本中不可放其它对象。容器:是一种特殊控件,是可以包含其它对象的对象。容器:是一种特殊控件,是可以包含其它对象的对象。书书218页表页表4.9列出了列出了VFP中常用的容
23、器及其所能包容的对象。中常用的容器及其所能包容的对象。Visual FoxPro17表单容器对象及所包容的对象情况表单容器对象及所包容的对象情况命令按钮命令按钮标签标签组合框组合框文本框文本框列表框列表框表单控件工具栏表单控件工具栏页框页框容器容器对象对象控件控件对象对象Visual FoxPro18 对象的引用对象的引用在面向程序设计中,首先要明确下面几个问题:在面向程序设计中,首先要明确下面几个问题:容器中的对象仍然可以是一个容器,一般把一个容器中的对象仍然可以是一个容器,一般把一个“对象对象”的直接容器称为的直接容器称为“父容器父容器”,在调用特定的对象时,搞清该对象,在调用特定的对象时
24、,搞清该对象的的“父容器父容器”是至关重要的,不能把一个对象的间接容器错误地是至关重要的,不能把一个对象的间接容器错误地视为其视为其“父容器父容器”。容器中对象的层次容器中对象的层次 对象使用局域名对象使用局域名每个对象都有一个名字。每个对象都有一个名字。在给对象命名时,只要保证同一个在给对象命名时,只要保证同一个“父容器父容器”下的各对象下的各对象不重名即可,换句话说,对象使用的是局域名,因此不能单独不重名即可,换句话说,对象使用的是局域名,因此不能单独使用对象名来调用对象,使用对象名来调用对象,Visual FoxPro19书书219页图页图4-25中的用对象的名称:中的用对象的名称:表单
25、:表单:Form1页框:页框:pageframe1 页名页名page1,page2,page3标签:标签:lable1,lable2,lable3,lable4组合框:组合框:combo1,combo2文本框:文本框:text1,text1列表框:列表框:list1,list2命令按钮:命令按钮:command1,command2以上是系统默认的名称,用户可以修改,例如:以上是系统默认的名称,用户可以修改,例如:form1修改修改为为“字体对话框字体对话框”,page1字体,字体,lable1中文字体,等等。中文字体,等等。Visual FoxPro20.以上格式所表示的是以上格式所表示的是中
26、的对象,不是前面的部分,中的对象,不是前面的部分,其间用小数点分隔。如果某个对象直接放在表单上,则引用时不其间用小数点分隔。如果某个对象直接放在表单上,则引用时不应再写容器名。应再写容器名。对象引用方式对象引用方式 对象引用中的关键字及含义(见书对象引用中的关键字及含义(见书220页表页表4-10)This:表示当前对象:表示当前对象Parent:表示当前对象的直接:表示当前对象的直接“父容器父容器”ThisForm:表示包含当前对象的表单:表示包含当前对象的表单ThisFormSet:表示包含当前对象的表单所属的表单集:表示包含当前对象的表单所属的表单集例如在图例如在图4-25中:命令按钮中
27、:命令按钮1的引用:的引用:mand1Text1引用:引用:thisfrom.pagefrane1.page1.text1Visual FoxPro21 属性窗口属性窗口打开属性窗口的方法:打开属性窗口的方法:(3)VFP对象的属性对象的属性显示菜单显示菜单/属性属性右击表单空白处,快捷右击表单空白处,快捷菜单菜单/属性属性对象组合框对象组合框选项卡选项卡属性设置框属性设置框属性列表框属性列表框属性说明信息属性说明信息属性窗口各部分功能:属性窗口各部分功能:对象组合框对象组合框下拉列表中显示当前表单、表单集及全部控下拉列表中显示当前表单、表单集及全部控件对象的列表。选择任意对象,将在属性列表框
28、中列出有关这个件对象的列表。选择任意对象,将在属性列表框中列出有关这个对象的所有属性、事件和方法程序供选择设置。对象的所有属性、事件和方法程序供选择设置。选项卡选项卡包含包含5个选项卡,分别用来显示对象的属性、事个选项卡,分别用来显示对象的属性、事件、方法程序等,各选项按字母顺序排列。件、方法程序等,各选项按字母顺序排列。Visual FoxPro22【全部全部】:列出对象的所有属性、事件、方法程序:列出对象的所有属性、事件、方法程序【数据数据】:列出所有显示或操纵的数据属性:列出所有显示或操纵的数据属性【方法程序方法程序】:对象的方法程序与事件,带有:对象的方法程序与事件,带有EVENT的是
29、的是事件,其余为方法程序。事件,其余为方法程序。【布局布局】:对象的位置、大小、颜色、字体等属性。:对象的位置、大小、颜色、字体等属性。【其它其它】:类信息和用户自定义属性等。:类信息和用户自定义属性等。注意:不同的对象,有不同的属性值。注意:不同的对象,有不同的属性值。属性设置框属性设置框用于更改属性值的文本框或组合框,左边用于更改属性值的文本框或组合框,左边的三个按钮的三个按钮“”、“”、“fx”可以取消和设置以及调用函数。可以取消和设置以及调用函数。属性列表属性列表给出在对象组合框选定的对象按选定选项卡给出在对象组合框选定的对象按选定选项卡分类后的各种属性,包括属性名和当前属性值。如果选
30、中某个属分类后的各种属性,包括属性名和当前属性值。如果选中某个属性,其值会在属性设置框中出现,以供修改。性,其值会在属性设置框中出现,以供修改。Visual FoxPro23属性说明信息属性说明信息显示在属性列表中被选择属性的含义。显示在属性列表中被选择属性的含义。常用属性介绍常用属性介绍不同的对象有不同的属性,有些对象属性有上百个,有些不同的对象有不同的属性,有些对象属性有上百个,有些属性只是在特别需要时才用到,而有些属性经常用到,而且很多属性只是在特别需要时才用到,而有些属性经常用到,而且很多对象具有一些相同的属性。书面对象具有一些相同的属性。书面221页表页表4-12给出了一些常用或给出
31、了一些常用或通用的属性。通用的属性。引用对象属性引用对象属性格式:格式:.例如:图例如:图4-25中,表单标题为中,表单标题为“字体对话框字体对话框”,表示如下:,表示如下:Thisform.coption=“字体对话框字体对话框”将文本框将文本框text1输入的值存入变量输入的值存入变量ww中,代码为:中,代码为:ww=thisform.pagefrane1.page1.text1.value对象的引用对象的引用对象的属性对象的属性Visual FoxPro24(1)Caption属性属性标题属性标题属性指定对象标题中显示的文本。指定对象标题中显示的文本。(2)Name属性属性指定在代码中引
32、用对象时所用的名称。指定在代码中引用对象时所用的名称。(3)AutoSize属性属性控件是否根据正文自动调整大小控件是否根据正文自动调整大小.T.真:自动调整大小真:自动调整大小.F.假假(默认默认):保持原来设计时大小。正文太长,则自动:保持原来设计时大小。正文太长,则自动裁剪掉。裁剪掉。(4)Heigh属性属性指定对象在屏幕上的高度指定对象在屏幕上的高度(5)Top属性属性控件:指定相对父对象最顶端的所在的位置控件:指定相对父对象最顶端的所在的位置表单对象:确定表单顶部边缘与表单对象:确定表单顶部边缘与VFP主窗口间距离主窗口间距离VFP中的常用属性中的常用属性Visual FoxPro2
33、5控件:相对父对象的左边界距离控件:相对父对象的左边界距离表单:表单左边界与表单:表单左边界与VFP主窗口左边界的距离主窗口左边界的距离(8)Enabled属性属性指定控件是否可用指定控件是否可用.T.真:可用真:可用.F.假:不可用,呈暗淡色,禁止用户操作假:不可用,呈暗淡色,禁止用户操作(9)Visible属性属性指定控件是否可见指定控件是否可见.T.真:可见真:可见.F.假:不可见,但控件本身存在假:不可见,但控件本身存在(10)FontName属性属性指定对象显示文本的字体名指定对象显示文本的字体名(11)FontSize属性属性指定对象文本字体大小指定对象文本字体大小(7)Left属
34、性属性Visual FoxPro26FontBold是否为粗体是否为粗体FontItalic是否斜体是否斜体FontStrikethru是否加一条删除线是否加一条删除线FontUnderline是否带下划线是否带下划线(13)ForeColor属性属性设置正文颜色设置正文颜色(14)BackColor属性属性设置背景颜色设置背景颜色(15)BackStyle属性属性设置背景风格设置背景风格透明:控件背景颜色不显示透明:控件背景颜色不显示不透明:控件设置背景颜色不透明:控件设置背景颜色(12)指定文本效果属性指定文本效果属性Visual FoxPro27无:控件周围无边框无:控件周围无边框固定单
35、线:控件带有边框固定单线:控件带有边框(17)Alignment属性属性标签、文本框、复选框中正文对齐标签、文本框、复选框中正文对齐方式。不同控件默认值不同。方式。不同控件默认值不同。左:左对齐左:左对齐右:右对齐右:右对齐中间:正文居中中间:正文居中(18)WordWrap属性属性AutoSize属性为属性为.T.时有效。时有效。.T.真:垂直方向上改变区域大小,水平不变化。真:垂直方向上改变区域大小,水平不变化。.F.假:水平方向按正文的长度放大和缩小区域;在垂假:水平方向按正文的长度放大和缩小区域;在垂直方向以字体大小放大和缩小区域。直方向以字体大小放大和缩小区域。(16)BordeSt
36、yle属性属性设置边框风格设置边框风格Visual FoxPro28(20)Picture属性属性指定控件中显示的位图、图标文件或指定控件中显示的位图、图标文件或通用字段。通用字段。(21)TabIndes属性属性指定页面上控件的指定页面上控件的【Tab】健的次序。健的次序。(22)TabStop属性属性用户是否可以使用用户是否可以使用【Tab】健把焦点健把焦点移到对象上。移到对象上。(23)SpecialEffect属性属性形状控件的不同样式选项形状控件的不同样式选项(24)Value属性属性指定控件的当前取值。指定控件的当前取值。(19)Style属性属性指定控件的样式指定控件的样式Vis
37、ual FoxPro29(4)VFP事件事件 事件驱动方式事件驱动方式面向对象程序设计的特点就是所有的操作都靠事件驱动,面向对象程序设计的特点就是所有的操作都靠事件驱动,这些事件都是由系统预先定义,由系统或用户触发,一旦触发某这些事件都是由系统预先定义,由系统或用户触发,一旦触发某个事件,系统就会转去执行与该事件对应的方法程序代码,完成个事件,系统就会转去执行与该事件对应的方法程序代码,完成某种操作。事件处理完毕后,系统继续待下一个事件的发生。某种操作。事件处理完毕后,系统继续待下一个事件的发生。常见事件介绍常见事件介绍见书见书223页表页表4-13有时需要给对象添加新的属性,方法是,在菜单栏
38、中,选有时需要给对象添加新的属性,方法是,在菜单栏中,选择择“表单表单”菜单中菜单中“新建属性新建属性”选项,在对话框中,指定要添加选项,在对话框中,指定要添加的属性名称,并单击的属性名称,并单击“添加添加”按钮,就完成的新属性的添加工作,按钮,就完成的新属性的添加工作,往后就可以如前面说明的一样设置该属性了。往后就可以如前面说明的一样设置该属性了。创建新属性创建新属性Visual FoxPro30事件:预先设定好的特定动作。由用户系统来激活。但用事件:预先设定好的特定动作。由用户系统来激活。但用户不能创建新事件。户不能创建新事件。例例1:表单中的按钮对象对于鼠标:表单中的按钮对象对于鼠标Cl
39、ick(单击)事件的响应。(单击)事件的响应。(例例11-6)(1)表单设计,在表单中加入一个标签、一个按钮。表单设计,在表单中加入一个标签、一个按钮。(2)编写程序代码编写程序代码进入代码窗口的三种方法进入代码窗口的三种方法 双击对象双击对象 显示显示/代码代码 右击对象右击对象快捷菜单快捷菜单/代码代码 command1的的Click事件代码:事件代码:ThisForm.Label1.Caption=我单击了一下按钮!我单击了一下按钮!(4)运行表单运行表单Visual FoxPro31格式:格式:.(5)VFP方法程序方法程序例例2:调用对象方法示例:调用对象方法示例(例例11-5)Command1按钮的按钮的Click事件代码:事件代码:Thisform.cls&清除表单上的图形清除表单上的图形Thisform.line(12,34,150,100)&调用调用Line方法绘制直线方法绘制直线Command2按钮的按钮的Click事件代码:事件代码:Thisform.clsThisform.box(20,20,100,60)&调用调用Box方法绘制矩形方法绘制矩形Command3按钮的按钮的Click事件代码:事件代码:Thisform.release&调用调用release方法释放表单方法释放表单