版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Visual FoxPro编程教程,第7章,自定义属性和方法,7.1自定义属性,7.2自定义方法,7.2自定义方法,教学过程,示例7-1设计步骤如下:(1)添加自定义属性。(2)建立应用用户界面,设置属性。7.1自定义属性,添加自定义属性,(3)编写代码。编写Spinner1的InteractiveChange事件代码:this form . sec=this . value * 60 a1=this . value a2=IIF(a1 % 60 10,0str (a1% 60,1),str (a1% 60,2) a3=str (int (a1/60),1),示教过程,this form .
2、text 1 . value=0a 3360 a 2336000 fa 10此表单。command 1 . enabled=. t . else this mand 1 . enabled=. f . endif写命令按钮命令1事件代码k: thisform。定时器1 . enabled=. t . this form . spinner 1 . enabled=. f . this . enabled=. f .编写定时器1的定时器事件代码:this form . sec=this form . sec 1a 0=this form . sec . Color=RGB(str
3、(r,3),str (g,3),str (b,3),示教过程,编写Spanner2的InteractiveChange事件代码:r=thisform.spi (1)。valueg=thisform.spi (2)。valueb=thisform.spi (3)。value this . parent . text 2 . back Color=RGB(r,g,b)this . parent . text 1 . value=Color=RGB(STR(r,3),STR(g,3),STR(b,3)编写Spanner3的InteractiveChange事件代码:r=thisform.spi (1
4、)。值g=thisform.spi (2)。值b=thisform.spi (3)。颜色=RGB(字符串(r,3),字符串(g,3),字符串(b,3),教学过程,7.2自定义方法,自定义方法调用自定义方法时应指明调用路径。在VFP,命名方法遵循以下命名原则:(1)只能使用字母、汉字、下划线和数字。(2)使用字母、汉字或下划线作为名称的开头。(3)名称可以是1到128个字符。(4)避免使用VFP的保留词。此外,应该注意,方法的名称不应该与变量或数组的名称相同,并且应该尽可能有意义。示教过程、示例7-4在示例7-3中,用户定义的方法用于统一处理修剪器的操作。在实施例7-3的基础上进行修改。具体步骤
5、如下:(1)添加新方法。进入表单设计器,点击系统主菜单中的“表单”项,从下拉菜单中选择“新方法程序”,打开“新方法程序”对话框,如图7-8所示。图7-8打开新方法程序对话框,图7-9自定义新方法单击添加,然后关闭退出新方法程序对话框。此时,新创建的方法及其描述可以在属性窗口的“方法程序”选项卡中看到(如图7-9所示)。、(2)编写自定义方法代码。编写自定义方法的代码与编写窗体的事件过程代码相同。您可以双击属性窗口中的新方法项,或者直接打开代码窗口,从过程下拉列表中选择新方法项。您可以开始编写新方法的代码(图7-10): r=thisform.spi (1)。valueg=thisform.sp
6、i (2)。valueb=thisform.spi (3)。背景色=RGB。集装箱1。文本1。value=color=RGB (str (r,3),str (g,3),str (b,3),图7-10,编译自定义方法的代码,示教过程,自定义方法的调用可以在事件过程或其他方法代码中调用,就像调用表单的内部方法一样。修改Spanner1: THISFORM.spich的交互更改事件代码修改Spanner2: THISFORM.spich的交互更改事件代码修改spanner 3:this form . spich表单的运行结果与示例7-3完全相同。,示教过程、参数传递和方法返回值,1。参数传递如果您希
7、望方法接收参数,您只需要在方法代码的开头添加一个命令行:当调用参数参数表或LPARAMETERS参数表时,用括号括起实际参数。教学过程、示例7-5一个窗口中有三个命令按钮。当用户单击其中一个按钮时,要求不能使用其他单个按钮:(1)添加新方法。进入表单设计器,点击系统主菜单中的“表单”项,从下拉菜单中选择“新方法程序”,打开“新方法程序”对话框。在“名称”栏中填入自定义方法的名称:CmdClk,点击“添加”按钮,然后点击“关闭”按钮,退出创建新方法程序的对话框。此时,您可以在属性窗口的“方法程序”选项卡中看到新创建的方法。示教过程、(2)编写自定义方法CmdClk的代码:参数x do case
8、x=THIS.command 1 THIS.command 2 . enabled=. f . case x=THIS.command 2 THIS.command 1 . enabled=. f . case x=THIS.command 3.command 1 . enabled=t . THIS.command 2 . enabled=t . end case(3)三个命令按钮的点击事件代码完全相同:THISFORM . CMDclk(THY)。教学过程、2。参数传递方法分为地址传递方法和数值传递方法。地址传输方法是指主程序将内存中实际参数的地址传输给被调用的方法,被调用的方法被形式参数
9、接收,形式参数也使用该地址。也就是说,实际参数和形式参数使用相同的内存地址,一旦形式参数的内容改变,实际参数的内容也将改变。值传递意味着主程序将实际参数的备份传输给被调用的方法,该备份可以被该方法更改,但是主程序中变量的原始值不会更改。默认情况下,VFP在调用方法时采用传递值的方式。有两种方法可以改变参数的传输模式:(1)使用设置参数值|参考命令强制改变参数的传输模式。(2)使用符号强制VFP使用地址传输的参数传输模式。教学过程、示例7-6编写一个用户定义的方法来计算最大公约数,输入的两个整数按值传递,计算出的最大公约数按地址传递。设计步骤如下:应用用户界面的建立和对象属性的设置见图7-13。
10、下面描述代码编译:图7-13寻找最大公约数。(1)首先添加自定义方法Hcf。(2)编写自定义方法Hcf的代码:参数m,n,Z如果m n t=m m=n n=t endif r=m% n,示教过程,当r0m=n n=r r=m % n enddo z=n将最大公约数赋给变量Z (3)编写“计算”按钮的点击事件代码,调用自定义方法hcf: x=val(此表单. text1.value) y=val(此表单. text2.value) a=0如果x * y0Label2.Caption=两个数字按地址是: ALLT(STR(a) ENDIF,示教过程、当代码执行RETURN命令时,它将立即返回到主程
11、序。方法可以在主程序中以下列形式调用:(1)在表达式中调用方法。例如k=()* THISFORM。演示(r) (2)调用赋值语句中的方法。例如,k=THISFORM。演示(r) (3)用等号命令调用方法。例如:=THISFORM。演示(r)注意:用等号命令调用方法将丢弃返回值。教学过程、示例7-7重写示例7-6中的自定义方法,以便它们可以返回值。然后,通过调用表达式中的方法,获得三个整数的最大公约数。设计步骤如下:应用用户界面的建立和对象属性的设置见图7-14。下面描述代码编译:图7-14寻找最大公约数。(1)首先,添加一个自定义方法Hcf。示教过程,(2)编写自定义方法Hcf的代码:参数m,
12、n如果m 0m=n n n=r=m % n end do返回n返回最大公约数,(3)编写“计算”按钮的单击事件代码,调用自定义方法hcf: x=值(thisform.text1.value) y=值(thisform.text2.value) z=值(thisform.text3.value)如果x * y * z0a=thisform.hcfhcf (a,z)这种形式。标签2。标题=3个数的最大公约数是: ALLT(STR(b) ENDIF,教学过程、在表单中,使用微调器选择参数,然后按等号按钮获得所需的组合数(如图7-15所示)。设计步骤如下:(1)应用用户界面的建立见图7-15。(2)属
13、性设置。图7-15计算组合数量。(3)代码编写:首先,在表单中添加一个自定义方法Fact()来计算阶乘,它的代码是:LPARAMETERS n v=1 IF n!=0 FOR I=1 TO n v=v * I END FOR ENDIF RETURN v,写入命令按钮的点击事件代码=:x=THIS . parent . spinner 1 . valuey=THIS . parent . spinner 2 . valuea=THIS form . fact(x)b=THIS form . fact(y)c=THIS form . fact(xy)THIS .父项。文本1。值=a/b/c此处用于计算组合数的公式是:编写Spinner1的InteractiveChange事件代码(公式中的m):a=this。value this . parent . spinner 2 . key board high value=a this . parent . spinner 2 . spinner high value=a b=this . p . Arent。纺纱工2 .价值这个.母公司.纺纱工2 .价值=IIF (b a,a,b)这个。父项. Text1.Value=编写spinner2(公式中为n)的InteractiveChange事件代码:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电冰箱装配工安全检查知识考核试卷含答案
- 非织造布卷绕分切工创新方法能力考核试卷含答案
- 集中供热设备更新项目热源厂改造技术方案
- 沼气物管员发展趋势评优考核试卷含答案
- 独立混合储能电站项目电池舱布置方案
- 移栽机操作工改进测试考核试卷含答案
- 2026年政务服务自助终端布设与运营实践思考
- 2026年不同年龄人群能量需求速查表
- 2026年剑桥智商测试题及答案
- 光学镜头制造工创新意识知识考核试卷含答案
- GB/T 2481.1-2025固结磨具用磨料粒度组成的检测和标记第1部分:粗磨粒F4~F220
- 核安全文化基本知识培训课件
- 七和弦题库及答案
- 2025年甘肃省委党校在职研究生招生考试(马克思主义中国化研究)历年参考题库含答案详解(5卷)
- 2025年安徽省委党校在职研究生招生考试(马克思主义中国化研究)历年参考题库含答案详解(5卷)
- 冬至英语课件介绍
- 非公企业党建培训课件
- 仓库工作纪律管理制度
- Windchill系统使用操作手册
- T/CHTS 20030-2023公路锌铝复合涂层钢护栏
- 2023气体绝缘金属封闭电器用全氟异丁腈混合气体密度继电器技术规范
评论
0/150
提交评论