自定义属性与方法

自定义属性与方法

ID:39644539

大小:259.50 KB

页数:33页

时间:2019-07-08

自定义属性与方法_第1页
自定义属性与方法_第2页
自定义属性与方法_第3页
自定义属性与方法_第4页
自定义属性与方法_第5页
资源描述:

《自定义属性与方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第8章自定义属性与方法8.1自定义属性8.2自定义方法如果说内存变量是个自由数据元素,那么属性就是与某对象相联系的数据元素。自定义属性就是依附到表单上的内存变量,在表单存在时期内,可以象“全局变量”一样使用。由于属性的使用需要严格的引用格式(对象.属性),使得属性使用起来在某种程度上比传统的xBASE变量作用域(全局、局部、私有)更加安全。在某些场合,可以使用“属性”来代替使用“变量”。而方法则是VFP中的一个新式的程序组装方式——限制在一个对象中的子程序。第8章自定义属性与方法过程间的数据传递除参数传递,还有一种是按变量的作用域传递数据。全

2、局变量:PUBLIC<内存变量表>定义变量以后,在任何过程中都可使用的变量。私有变量:[PRIVATE<内存变量表>]未加任何变量类型说明,直接赋值使用的内存变量,本过程其被调用的下层过程中有效。本过程运行结束,变量无效。区域变量:LOCAL<内存变量表>区域变量只能在建立它的过程中使用,不能在上层及下层过程中使用。例题:内存变量作用域例题.prg大小写转换.scx变量作用域.scx变量作用域VFP允许用户像定义变量一样自定义各种类型的属性。自定义属性只能依附于表单对象对于由控件创建的对象,无法增加新的属性。8.1.1添加自定义属性例如:在表

3、单中添加一个自定义的属性Sec①在表单设计器,单击“表单”项,选择“新建属性”,打开新建属性对话框。②在“名称(Name)”栏中填入自定义属性的名称Sec,然后在“说明”栏中填入该属性的简单说明:③单击“添加”按钮后再单击“关闭”按钮,退出“新建属性”对话框。此时,在属性窗口的“其他”选项卡中可以看见新建的属性及其说明,新定义属性的类型为逻辑型,值为:.F.,我们可以将它改为其他类型,如数值型值:08.1自定义属性教学进程【例8-1】设计一个计时器,能够设置倒计时的时间,并进行倒计时。设计步骤如下:(1)添加自定义属性。(2)建立应用程序用户

4、界面与设置属性。8.1自定义属性■添加自定义属性(3)编写代码。●编写微调器Spinner1的InteractiveChange事件代码:THISFORM.sec=THIS.Value*60&&给属性SEC赋初始秒数a1=THIS.Valuea2=IIF(a1%60<10,“0”+STR(a1%60,1),STR(a1%60,2))&&分钟a3=STR(INT(a1/60),1)&&小时教学进程THISFORM.Text1.Value="0"+a3+":"+a2+":00"IFa1>0THISFORM.Command1.Enabled=.T.

5、ELSETHISFORM.Command1.Enabled=.F.ENDIF●编写命令按钮Command1的Click事件代码:THISFORM.Timer1.Enabled=.T.THISFORM.Spinner1.Enabled=.F.THIS.Enabled=.F.●编写计时器Timer1的Timer事件代码:THISFORM.sec=THISFORM.sec–1a0=THISFORM.sec&&秒数IFa0>=0a1=INT(a0/60)&&分钟数a2=INT(a1/60)&&小时数教学进程b0=IIF(a0%60<10,"0"+ST

6、R(a0%60,1),STR(a0%60,2))b1=IIF(a1%60<10,"0"+STR(a1%60,1),STR(a1%60,2))b2=IIF(a2%60<10,"0"+STR(a2%60,1),STR(a2%60,2))THISFORM.Text1.Value=ALLT(b2+":"+b1+":"+b0)THISFORM.Spinner1.Value=a1ELSETHIS.Enabled=.F.THISFORM.Spinner1.Enabled=.T.ENDIF运行程序,设置时间后按“开始”按钮,即开始倒计时,时间到时将弹出对话框

7、。图8-3倒计时器教学进程■数组属性【例8-2】在例7-3(P124)中使用数组属性来存放方阵的元素。求出主对角线上元素之和以及方阵的最大元素。设计步骤如下:(1)添加自定义属性。A(5,5)(2)建立应用程序用户界面与设置属性。(3)修改代码。清除表单的Load、UnLoad事件代码,并修改表单的Activate事件代码:FORi=1TO25yes=1DOWHILEyes=1x=INT(RAND()*100)yes=0FORj=1TOi–1教学进程IFx=VAL(THIS.a(j))yes=1&&如与前面的元素相同,则返回到Do循环EXIT

8、ENDIFENDFORENDDOTHIS.a(i)=STR(x,3)ENDFORTHISFORM.Text1.Value=""THISFORM.Text2.Valu

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。