面向对象的程序设计_第1页
面向对象的程序设计_第2页
面向对象的程序设计_第3页
面向对象的程序设计_第4页
面向对象的程序设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第八章第八章 面向对象的程序设计面向对象的程序设计复习1.子类与继承的关系方法属性父类子类子类继承的方法、属性添加的方法、属性2.属性、方法、事件属性、方法、事件 (1)属性属性用于表示对象的特征、状态。如命令按钮在表单上用于表示对象的特征、状态。如命令按钮在表单上的位置可以用它的属性的位置可以用它的属性left、top表示,它的大小可以用表示,它的大小可以用width、height属性表示。属性表示。 当然,我们可以添加新的属性当然,我们可以添加新的属性 (2)方法方法用于表示对象的行为,它由对象的通用过程来实现。用于表示对象的行为,它由对象的通用过程来实现。例如,为了使当前运行表单从内存中

2、释放,可以调用表单的例如,为了使当前运行表单从内存中释放,可以调用表单的release方法实现方法实现,代码为代码为thisform.release。 我们可以为对象添加新的方法,还可以添加新的代码以扩展现我们可以为对象添加新的方法,还可以添加新的代码以扩展现有方法的功能;但不能删除现有方法。有方法的功能;但不能删除现有方法。 (3)事件事件是一种预先定义好的特定动作,可由用户或系统触发。是一种预先定义好的特定动作,可由用户或系统触发。例如,单击例如,单击“命令命令”按钮触发该按钮的按钮触发该按钮的click事件。事件。 不可扩展。不可扩展。3.事件的触发顺序事件的触发顺序Load init

3、destroy unload一、表单设计器一、表单设计器1.表单设计器环境表单设计器环境(1)表单设计器窗口)表单设计器窗口(2)属性窗口)属性窗口(3)表单控件工具栏)表单控件工具栏(4)表单设计器工具栏)表单设计器工具栏(5)表单菜单)表单菜单 例例1 按下列要求创建表单按下列要求创建表单myForm n 为表单添加一个新属性,属性名为:newp。n 修改Init事件代码,使其能接受从DO FORM命令传递过来的参数,并将参数值赋给新添加的属性newp。n 设置Click事件代码:使属性newp的值加10,然后显示该属性的新值。n 设置RightClick事件代码:使属性newp的值减10

4、,然后显示该属性的新值。 在命令窗口输入命令MODIFY FORM myForm,打开表单设计器窗口。 添加新属性。从【表单】菜单中选择【新建属性】命令,打开【新建属性】对话框,然后在【名称】框中输入属性名称newp,并依次单击【添加】和【关闭】按钮。 从【显示】菜单中选择【代码】命令,打开代码编辑窗口。 修改Init事件代码。从【过程】框中选择Init,然后在编辑区修改事件代码:LPARAMETERS pThisForm.newp=PWAIT “引发Init事件!” WINDOW 设置Click事件代码。从【过程】框中选择Click,然后在编辑区输入代码:ThisForm.newp= Thi

5、sForm.newp+10WAIT ”newp=”+STR(ThisForm.newp) WINDOW 设置RightClick事件代码。从【过程】框中选择RightClick,然后在编辑区输入代码:ThisForm.newp= ThisForm.newp-10WAIT ”newp=”+STR(ThisForm.newp) WINDOW 依次关闭代码编辑窗口和表单设计器窗口。 在命令窗口中输入命令: DO FORM myForm WITH 5 2.控件的操作与布局控件的操作与布局(1)控件的基本操作)控件的基本操作(选定控件、移动控件、复制控(选定控件、移动控件、复制控件件 、删除控件、删除控

6、件 )(2)设置)设置TAB键的次序(键的次序(交互方式、列表方式交互方式、列表方式)(3)数据环境()数据环境(向数据环境添中表或视图、向数据环境移去表向数据环境添中表或视图、向数据环境移去表或视图或视图)1.标签标签(Label)控件控件 标签是用以显示文本的图形控件,被显示标签是用以显示文本的图形控件,被显示的文本在的文本在Caption属性中指定,称为标题文本。属性中指定,称为标题文本。标签的标题文本不能在屏幕上直接编辑修改,但标签的标题文本不能在屏幕上直接编辑修改,但可以在代码中通过重新设置可以在代码中通过重新设置Caption属性间接修属性间接修改。标签标题文本最多可包含的字符数目

7、是改。标签标题文本最多可包含的字符数目是256。 标签具有自己的一套属性、方法和事件,能标签具有自己的一套属性、方法和事件,能够响应绝大多数鼠标事件。可以使用够响应绝大多数鼠标事件。可以使用TabIndex属性为标签指定一个属性为标签指定一个Tab次序,但标签次序,但标签并不能获并不能获得焦点得焦点,而是把焦点传递给,而是把焦点传递给Tab键次序中紧跟着键次序中紧跟着标签的下一个控件。标签的下一个控件。二、常用表单控件(第二、常用表单控件(第9章)章)(1)Caption属性属性 指定标签的标题文本指定标签的标题文本。很多控件类都具有。很多控件类都具有Caption属属性,如表单、复选框、选项

8、按钮、命令按钮等。用户可以性,如表单、复选框、选项按钮、命令按钮等。用户可以利用该属性为所创建的对象指定标题文本。标题文本显示利用该属性为所创建的对象指定标题文本。标题文本显示在屏幕上以帮助使用者识别各对象。标题文本的显示位置在屏幕上以帮助使用者识别各对象。标题文本的显示位置视对象类型不同而不同,比如,标签的标题文本显示在标视对象类型不同而不同,比如,标签的标题文本显示在标签区域内,表单的标题文本显示在表单的标题栏上。签区域内,表单的标题文本显示在表单的标题栏上。 需要注意的是,在设计代码时,应该用需要注意的是,在设计代码时,应该用Name属性值属性值(对象名称)而不能用(对象名称)而不能用C

9、aption属性值来引用对象。在同属性值来引用对象。在同一作用域内两个对象(如一个表单内的两个命令按钮)可一作用域内两个对象(如一个表单内的两个命令按钮)可以有相同的以有相同的Caption属性值,但不能有相同的属性值,但不能有相同的Name属性属性值。用户在产生表单或控件对象时,系统给予对象的值。用户在产生表单或控件对象时,系统给予对象的Caption属性值和属性值和Name属性值是相同的,如属性值是相同的,如Label1、Form1、Cammand1等,但用户可以分别重新设置它们。等,但用户可以分别重新设置它们。 例例2 表单中有三个标签,如下图所示。当用鼠标单表单中有三个标签,如下图所示

10、。当用鼠标单击任何一个标签时,都使其他两个标签的标题文本击任何一个标签时,都使其他两个标签的标题文本互换。互换。 标签标签Label1的的Click事件代码为:事件代码为:thisform.Label2. Caption= thisform.Label3. Caption 标签标签Label2的的Click事件代码为:事件代码为:thisform.Label1. Caption= thisform.Label3. Caption 标签标签Label3的的Click事件代码为:事件代码为:thisform.Label1. Caption= thisform.Label2. Caption2.命令

11、按钮命令按钮(CommandButton) 控件控件 命令按钮典型地用来启动某个事件代码、完成特定功能,命令按钮典型地用来启动某个事件代码、完成特定功能,如关闭表单、移动记录指针、打印报表等。如关闭表单、移动记录指针、打印报表等。 (1)Default属性和属性和Cancel属性属性一个表单内只能有一个【确认】按钮一个表单内只能有一个【确认】按钮,当用户将某个命令按,当用户将某个命令按钮设置为【确认】按钮时,先前存在的【确认】按钮自动变钮设置为【确认】按钮时,先前存在的【确认】按钮自动变为【非确认】按钮。为【非确认】按钮。 (2)Enabled属性属性 指定表单或控件能否响应由用户引发的事件。

12、默认值指定表单或控件能否响应由用户引发的事件。默认值为为.T.,即对象是有效的,能被选择,能响应用户引发的事件。,即对象是有效的,能被选择,能响应用户引发的事件。 Enabled属性使得用户(程序)可以根据应用的当前状属性使得用户(程序)可以根据应用的当前状态随时决定一个对象是有效的还是无效的,也可以限制一个态随时决定一个对象是有效的还是无效的,也可以限制一个对象的使用,如用一个无效的编辑框(对象的使用,如用一个无效的编辑框(Enabled=.F.)来显)来显示只读信息。示只读信息。 3.命令组(命令组(CommandGroup)控件)控件 1ButtonCount属性属性 指定命令组中命令按

13、钮的数目。在表单中创建一个命令组时,指定命令组中命令按钮的数目。在表单中创建一个命令组时,ButtonCount属性的默认值是属性的默认值是2,可以通过改变,可以通过改变ButtonCount属性的值来属性的值来重新设置命令组中包含的命令按钮数目。例如,要想使一个命令组包含重新设置命令组中包含的命令按钮数目。例如,要想使一个命令组包含4个个按钮,可将按钮,可将ButtonCount属性值设置为属性值设置为4。该属性在设计和运行时可用。该属性在设计和运行时可用。除了命令组,还适用于选项组。除了命令组,还适用于选项组。 2Buttons属性属性 用于存取命令组中各按钮的用于存取命令组中各按钮的数组

14、数组。该属性数组在创建命令组时建立,。该属性数组在创建命令组时建立,用户可以利用该数组为命令组中的命令按钮设置属性或调用其方法。例如,用户可以利用该数组为命令组中的命令按钮设置属性或调用其方法。例如,下面这行代码可以放在与命令组下面这行代码可以放在与命令组myCommandG处于同一表单中的某个对处于同一表单中的某个对象的方法或事件代码中,将命令组中的第象的方法或事件代码中,将命令组中的第2个按钮设置成隐藏的:个按钮设置成隐藏的: 属性数组下标的取值范围应该在属性数组下标的取值范围应该在1至至ButtonCount属性值之间属性值之间。3Value属性属性 指定命令组当前的状态。该属性的类型可

15、以是数值型的(这是默认的指定命令组当前的状态。该属性的类型可以是数值型的(这是默认的情况),也可以是字符型的。若为数值型值情况),也可以是字符型的。若为数值型值N,则表示命令组中第,则表示命令组中第N个命令个命令按钮被选中;若为字符型值按钮被选中;若为字符型值C,则表示命令组中,则表示命令组中Caption属性值为属性值为C的命令的命令按钮被选中。按钮被选中。4.文本框(文本框(TextBox)控件)控件 文本框是文本框是 Visual FoxPro里一种常用的控件。用户利用它可里一种常用的控件。用户利用它可以在内存变量、数组元素或非备注型字段中输入或编辑数据。所以在内存变量、数组元素或非备注

16、型字段中输入或编辑数据。所有标准的有标准的 Visual FoxPro编辑功能,如剪切、复制和粘贴,在文编辑功能,如剪切、复制和粘贴,在文本框内都可使用。文本框一般包含一行数据。文本框可以编辑任本框内都可使用。文本框一般包含一行数据。文本框可以编辑任何类型的数据,如字符型、数值型、逻辑型、日期型或日期时间何类型的数据,如字符型、数值型、逻辑型、日期型或日期时间型等。型等。 (1)ControlSource属性属性 一般情况下,可以利用该属性为文本框指定一个字段或内存一般情况下,可以利用该属性为文本框指定一个字段或内存变量。运行时,文本框首先显示该变量的内容。而用户对文本框变量。运行时,文本框首

17、先显示该变量的内容。而用户对文本框的编辑结果,也会最终保存到该变量中。的编辑结果,也会最终保存到该变量中。 该属性在设计和运行时可用。除了文本框,还适用于编辑框、该属性在设计和运行时可用。除了文本框,还适用于编辑框、命令组、选项按钮、选项组、复选框、列表框、组合框等控件。命令组、选项按钮、选项组、复选框、列表框、组合框等控件。 (2)Value属性属性 返回文本框的当前内容。该属性的默认值是空串。如果返回文本框的当前内容。该属性的默认值是空串。如果ControlSource属性指定了字段或内存变量,则该属性将与属性指定了字段或内存变量,则该属性将与ControlSource属性指定的变量具有相

18、同的数据和类型。属性指定的变量具有相同的数据和类型。 (3)PasswordChar属性属性 指定文本框控件内是显示用户输入的字符还是显示占位符;指定文本框控件内是显示用户输入的字符还是显示占位符;指定用作占位符的字符。指定用作占位符的字符。 该属性的默认值是空串,此时没有占位符,文本框内显示用该属性的默认值是空串,此时没有占位符,文本框内显示用户输入的内容。当为该属性指定一个字符(即占位符,通常为户输入的内容。当为该属性指定一个字符(即占位符,通常为*)后,文本框内将只显示占位符,而不会显示用户输入的实际内容。后,文本框内将只显示占位符,而不会显示用户输入的实际内容。这在设计登入口令框时经常

19、用到。此属性不会影响这在设计登入口令框时经常用到。此属性不会影响Value属性的属性的设置,设置,Value属性总是包含用户输入的实际内容。属性总是包含用户输入的实际内容。 该属性在设计和运行时可用,仅适用于文本框。该属性在设计和运行时可用,仅适用于文本框。 (4)InputMask属性属性 指定在一个文本框中如何输入和显示数据。指定在一个文本框中如何输入和显示数据。 InputMask属性值是一个字符串。该字符串通常由一些所谓属性值是一个字符串。该字符串通常由一些所谓的模式符组成,每个模式符规定了相应位置上数据的输入和显示的模式符组成,每个模式符规定了相应位置上数据的输入和显示行为,如设置行

20、为,如设置inputMask属性值为属性值为999999,那么就是限制输入的,那么就是限制输入的内容只能为内容只能为6位的数字。各种模式符的功能如下页表所示。位的数字。各种模式符的功能如下页表所示。 InputMask属性值中也可以包含其他字符,这些字符在文本属性值中也可以包含其他字符,这些字符在文本框内将会原样显示。框内将会原样显示。模式符功能X允许输入任何字符9允许输入数字和正负号#允许输入数字、空格和正负号$在固定位置上显示货币符号(有SET CURRENCY命令指定)$在数值前面相邻的位置上显示货币符号(浮动货币符)*在数值左边显示星号*.指定小数点的位置模式符及其功能模式符及其功能

21、5.编辑框(编辑框(EditBox)控件)控件 与文本框一样,编辑框也用来输入、编辑数据,但它与文本框一样,编辑框也用来输入、编辑数据,但它有自己的特点:有自己的特点: 编辑框实际上是一个完整的字处理器,利用它能够编辑框实际上是一个完整的字处理器,利用它能够选择、剪切、粘贴以及复制正文;可以实现自动换行(字卷选择、剪切、粘贴以及复制正文;可以实现自动换行(字卷绕);能够有自己的垂直滚动条;可以用箭头键在正文里面绕);能够有自己的垂直滚动条;可以用箭头键在正文里面移动光标。移动光标。 编辑框只能输入、编辑字符型数据,包括字符型内编辑框只能输入、编辑字符型数据,包括字符型内存变量、数组元素、字段以

22、及备注字段里的内容。存变量、数组元素、字段以及备注字段里的内容。 前面介绍的有关文本框的有关属性(不包括前面介绍的有关文本框的有关属性(不包括PasswordChar属性)对编辑框同样适用。属性)对编辑框同样适用。 (1)AllowTabs属性属性 指定编辑框控件中能否使用指定编辑框控件中能否使用Tab键,仅适用于编辑框。键,仅适用于编辑框。 (2)HideSelection属性属性 指定当编辑框失去焦点时,编辑框中选定的文本是否仍显指定当编辑框失去焦点时,编辑框中选定的文本是否仍显示为选定状态。示为选定状态。 (3)ReadOnly属性属性 指定用户能否编辑编辑框中的内容。除了编辑框,还适用

23、于指定用户能否编辑编辑框中的内容。除了编辑框,还适用于文本框、表格等控件。文本框、表格等控件。 (4)ScrollBars属性属性 指定编辑框是否具有滚动条。当属性值为指定编辑框是否具有滚动条。当属性值为0时,编辑框没有时,编辑框没有滚动条;当属性值为滚动条;当属性值为2(默认值)时,编辑框包含垂直滚动条。(默认值)时,编辑框包含垂直滚动条。 该属性在设计时可用,在运行时可读写。除了编辑框,还适该属性在设计时可用,在运行时可读写。除了编辑框,还适用于表单、表格等控件。用于表单、表格等控件。(5)SelStart属性属性 返回用户在编辑框中所选文本的起始点位置或插入点位置(没有文本返回用户在编辑

24、框中所选文本的起始点位置或插入点位置(没有文本选定时)。也可用以指定要选文本的起始位置或插入点位置。属性的有效选定时)。也可用以指定要选文本的起始位置或插入点位置。属性的有效取值范围在取值范围在0与编辑区中的字符总数之间。与编辑区中的字符总数之间。 该属性在设计时不可用,在运行时可读写。除了编辑框,还适用于文该属性在设计时不可用,在运行时可读写。除了编辑框,还适用于文本框、组合框等控件。本框、组合框等控件。(6)SelLength属性属性 返回用户在控件的文本输入区中所选定字符的数目,或指定要选定的返回用户在控件的文本输入区中所选定字符的数目,或指定要选定的字符数目。属性的有效取值范围在字符数

25、目。属性的有效取值范围在0与编辑区中的字符总数之间,若小于与编辑区中的字符总数之间,若小于0,将产生一个错误。,将产生一个错误。 该属性在设计时不可用,在运行时可读写。除了编辑框,还适用于文该属性在设计时不可用,在运行时可读写。除了编辑框,还适用于文本框、组合框等控件。本框、组合框等控件。(7)SelText属性属性 返回用户编辑区内选定的文本,如果没有选定任何文本,则返回空串。返回用户编辑区内选定的文本,如果没有选定任何文本,则返回空串。该属性在设计时不可用,在运行时可读写。除了编辑框,还适用于文本框、该属性在设计时不可用,在运行时可读写。除了编辑框,还适用于文本框、组合框等控件。组合框等控

26、件。 SelStart、SelLength和和SelText属性配合使用,可以完成诸如设置插属性配合使用,可以完成诸如设置插入点位置、控制插入点的移动范围、选择字串、清除文本等一些任务。入点位置、控制插入点的移动范围、选择字串、清除文本等一些任务。例例3 表单里包含一个编辑框表单里包含一个编辑框Edit1和两个命令按钮和两个命令按钮Commandl(查找)、(查找)、Command2(替换),如下(替换),如下图所示。要求:单击图所示。要求:单击Command1时,选择时,选择Edit1里的里的某个单词某个单词example;单击;单击Cammand2时,用单词时,用单词exercise置换己

27、选择的单词置换己选择的单词example。 程序要点:程序要点: 编辑框的编辑框的HideSelection属性值为属性值为.F.,这样,这样“查找查找”命令按钮命令按钮找到的字符串就会显示成选定状态。找到的字符串就会显示成选定状态。 命令按钮命令按钮Cammandl的的Click事件代码为:事件代码为:n=)IF n0 =LEN(”example”)ELSE WAIT WINDOWS ”没有相匹配的单词没有相匹配的单词” TIMEOUT 1ENDIF 命令按钮命令按钮Cammand2的的Click事件代码为:事件代码为:IF =”example” =”exercise”ELSE WAIT W

28、INDOWS ”没有选择需要置换的单词没有选择需要置换的单词” TIMEOUT 1ENDIF 5.复选框(复选框(CheckBox)控件)控件 一个复选框用于标记一个两值状态,如真(一个复选框用于标记一个两值状态,如真(.T.)或假)或假(.F.)。当处于)。当处于“真真”状态时,复选框内显示一个对勾(状态时,复选框内显示一个对勾(););否则,复选框内为空白。否则,复选框内为空白。 (1)Caption属性属性 用来指定显示在复选框旁边的文字。用来指定显示在复选框旁边的文字。 (2)Value属性属性 用来指明复选框的当前状态。复选框的用来指明复选框的当前状态。复选框的Value属性值的设置

29、属性值的设置有三种情况,如下表所示。有三种情况,如下表所示。 属性值说明0或.F.(默认值),未被选中1或.T.被选中2或.null.不确定,只在代码中有效 (3)ControlSource属性属性6.选项组(选项组(OptionGroup)控件)控件 选项组又称为选项按钮组,是包含选项按钮的一种容器。一个选项组又称为选项按钮组,是包含选项按钮的一种容器。一个选项组中往往包含若干个选项按钮,但用户只能从中选择一个按选项组中往往包含若干个选项按钮,但用户只能从中选择一个按钮。当用户选择某个选项按钮时,该按钮即成为被选中状态,而钮。当用户选择某个选项按钮时,该按钮即成为被选中状态,而选项组中的其他选项按钮,不管原来是什么状态,都变为未选中选项组中的其他选项按钮,不管原来是什么状态,都变为未选中状态。被选中的选项按钮中会显示一个圆点。状态。被选中的选项按钮中会显示一个圆点。 (1)ButtonCoun

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论