ADDPROPERTY( ) 用于向有效的 Visual FoxPro 对象添加新属性和值,对象包括由 Visual FoxPro 类生成的类,COM 类,以及 SCATTER...NAME 命令生成的类。
ADDPROPERTY(oObjectName, cPropertyName, [, eNewValue ])
参数
oObjectName
指定要加属性的对象的名称。如果 oObjectName 不是一个有效的对象,Visual FoxPro 将产生适当的提示信息。
cPropertyName
指定要添加到对象中的新属性的名称。如果指定的属性名不存,该属性将被创建并添加。
eNewValue
指定新属性的设置值。当省略 eNewValue时,如果该属性已经存在,Visual FoxPro保持该属性值不变;如果该属性是新添加的,Visual FoxPro 将该属性值设为“假”(.F.)。
返回值
逻辑型数据类型。下表中列出了ADDPROPERTY( )的返回值,及添加一个已经存在的属性到对象时的表现。
返回值 说明
真 (.T.)
当 ADDPROPERTY( ) 成功添加属性时。
当新属性是一个数组属性,并且该数组已经存在,ADDPROPERTY( ) 根据cPropertyName中指定的情况重新调整数组的大小。如果用eNewValue指定了属性值,数组中所有元素都将设为该值。如果省略 eNewValue,所有的数组元素都将被设为假(.F.)。
如果新属性不是一个数组属性,但已经存在的属性是一个数组属性,该属性将保持同样大小的数组属性。如果用 eNewValue指定了新值,数组中全部元素将被设为该值。如果省略eNewValue,所有数组元素将被设为假(.F.)。
如果新属性不是一个数组属性,并且已存在的属性是不是数组属性或者不是一个只读的 Visual FoxPro 自带属性,如果eNewValue中指定了新值,已存在的属性将被设为该值。如果省略eNewValue,已存在的属性值将保持不变。
如果指定的属性是一个已经存在,被标为Hidden (隐藏)或 Protected(受保护)的对象成员, Visual FoxPro 产生一个错误,"name 属性没有找到(Error 1734)"并且该属性不能被 ADDPROPERTY( )设置。
假 (.F.)
当 ADDPROPERTY( ) 未能成功添加属性时。
当新属性是数组属性,已存在的属性不是数组属性,已存在的属性将保持不变。
说明
用 ADDPROPERTY( ) 可以为对象创建属性数组。如果提供了eNewValue,每个数组元素初始化为该值。否则,数组中每个属性的值都被设为假(.F.)。更多的关于为对象创建属性数组的信息,请参见示例。
Visual FoxPro新添加的属性将做为Public(公共)属性。该属性可以被指定为 Protected 或 Hidden。
如果已存在的属性是只读的 Visual FoxPro 自带属性,比如BaseClass 属性,Visual FoxPro 将产生一个错误,"属性名是只读的(Error 1743)"。
如果属性名不是效的,例如,属性名中包含空格或其它非法字符,Visual FoxPro 将产生一个错误,"不正确的属性名(Error 1470)"。
对于由Visual FoxProFor类继承而来的对象的实例,ADDPROPERTY( ) 将保持AddProperty方法中的可视化设置。如果AddProperty 被标为 Hidden 或 Protected, ADDPROPERTY( ) 不创建新属性并返回假(.F.)。如果 AddProperty 方法被标为Public (默认),ADDPROPERTY( ) 创建数组并返回真(.T.)。这保护了原始的类设计。
注意:
这个不能应用到由 Visual FoxPro OLEPUBLIC 类创建的 COM 对象。
对于FOR EACH命令中的对象引用,不能使用ADDPROPERTY( )函数,但可以用AddProperty 方法程序来实现该功能。
示例
示例 1
下面的示例向SCATTER命令创建的对象添加一个新的属性。
USE customers
SCATTER NAME oCust
ADDPROPERTY(oCust,"MyProperty")
示例 2
下面的示例向 oMyForm 对象添加了一个属性数组,并且显示它的内容,1 和 "Two"。
oMyForm = CREATEOBJECT('Form')
ADDPROPERTY(oMyForm, 'MyArray(2)', 1)
oMyForm.MyArray(2) = "Two"
CLEAR
? oMyForm.MyArray(1)
? oMyForm.MyArray(2)
表单结构更灵活要提交数据的控件可以布局在form标签之外,看下面的代码,表单元素可以写到form元素之外,只需在元素中加入form="form1"属性,也可提交到form元素指定的服务器地址新增表单元素我们以前学过的表单元素包括“text”、“button”、“file”、"radio"等,html5中新增加了一些表单元素,下面列出这些元素及其作用email类型用于验证email的格式,当提交表单时会自动验证email域的值url类型用于验证URL地址的格式,当提交表单时会自动验证url域的值number类型会根据你的设置提供选择数字的功能,min属性设置最小值、max属性设置最大值,value属性设置当前值,step属性设定每次增长的值,某些浏览器还不支持range类型用于应该包含一定范围内数字值的输入域,其会以一个滑块的形式展现,min属性设置最小值、max属性设置最大值,value属性设置当前值,如果没有设置,则其默认值的范围是1-100日期和时间类型:HTML5拥有多个可供选取日期和时间的新输入类型:date-选取日、月、年month-选取月、年week-选取周和年time-选取时间(小时和分钟)datetime-选取时间、日、月、年(UTC时间)datetime-local-选取时间、日、月、年(本地时间)search类型用于搜索域,比如站点搜索或Google搜索,为其加上results="s"属性,则会在搜索框前面加上一个搜索图标tel类型用于验证输入的是否是电话格式的内容,此元素现在还没有浏览器支持color类型会提供一个颜色拾取器,供用户选择颜色,并将用户选择的颜色填充到此元素中案例如下,大家可以将代码拷贝或者自己编写之后,在浏览器中查看效果浏览器的支持情况chrome:firefox:Opera:MicrosoftEdge:好,我们对微软的进步进行表扬!新增表单属性除了新增的表单元素之外,html5中还新增了一些表单属性新的form属性:autocompletenovalidate新的input属性:autocompleteautofocusformformoverrides(formaction,formenctype,formmethod,formnovalidate,formtarget)height和widthlistmin,max和stepmultiplepattern(regexp)placeholderrequired在下面的案例中,我们对一些常用的属性做了解释,大家直接看代码和代码旁边的注释,然后对照浏览器的运行结果就理解其意义了1、<form name="searchform" method="post" action="search_list.asp" target="_blank">和在新窗口打开链接一样,加个target="_blank"。2、_blank -- 在新窗口中打开链接
_parent -- 在父窗体中打开链接
_self -- 在当前窗体打开链接,此为默认值
_top -- 在当前窗体打开链接,并替换当前的整个窗体(框架页)
一个对应的框架页的名称 -- 在对应框架页中打开
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)