聲明一個(gè)屬性。
<property name="propertyName" [internalName="propertyVariable"] />
或者
<property name="propertyName"> <get [internalName="getFunctionName"] /> <put [internalName="putFunctionName"] /> </property>
提示 在 XML,可以實(shí)現(xiàn)沒(méi)有內(nèi)容的元素 (如 <property> 元素),方法是用 /> 來(lái)結(jié)束元素。
屬性可以作為簡(jiǎn)單值來(lái)說(shuō)明。在這種情況下,屬性將作為腳本部件文件內(nèi)的全局變量來(lái)處理。
也可以將屬性作為過(guò)程(函數(shù)或子程序)來(lái)實(shí)現(xiàn),這樣可以計(jì)算屬性的值,以及控制屬性是否為只讀、只寫(xiě)或是可讀寫(xiě)的。在這種技術(shù)中,屬性將在單獨(dú)的 <script> 元素內(nèi)作為過(guò)程(函數(shù)或子程序)實(shí)現(xiàn)。<property>元素將屬性名稱(chēng)映射到用來(lái)實(shí)現(xiàn)該屬性的過(guò)程。過(guò)程的名稱(chēng)必須與在 <property> 元素中指定的內(nèi)部名稱(chēng)一致。
當(dāng)調(diào)用 putFunctionName 時(shí),該函數(shù)將傳遞一個(gè)參數(shù),其中包含了用來(lái)設(shè)置給該屬性的值。
除了以上所示的標(biāo)準(zhǔn)語(yǔ)法,您可以使用速記符號(hào)指定由子標(biāo)記(child tags)添加的信息。例如,如果您想聲明一個(gè)具有和屬性相同名字的"get" 和 "put" 訪問(wèn)者屬性,您可以使用以下語(yǔ)法:
<property name="myproperty" get put/>
它在功能上相當(dāng)于:
<property name="myproperty"><get/> <put/></property>
如果您想明確地不以默認(rèn)名稱(chēng)命名這些訪問(wèn)者,您可以使用以下語(yǔ)法:
<property name="myproperty" get="testget" put="testput"/>
要指定缺省屬性,只需在 <property> 元素中包含 dispid="0" 這個(gè)屬性。詳細(xì)信息請(qǐng)參閱說(shuō)明屬性。
下面的腳本部件片段演示了四個(gè)屬性 (sname、age、dateOfBirth 以及 mstatus) 的定義。sname 屬性為一個(gè)簡(jiǎn)單值。age 屬性是只讀的,由 readAge 函數(shù)實(shí)現(xiàn)。dateOfBirth 屬性是可讀寫(xiě)的,由 readDOB 和 writeDOB 兩個(gè)函數(shù)實(shí)現(xiàn)。最后, mstatus 屬性由缺省函數(shù) get_mstatus 以及 put_mstatus 實(shí)現(xiàn)。
注意 CDATA 項(xiàng)是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請(qǐng)參閱腳本部件文件和 XML 一致性。
<public>
<property name="sname"/>
<property name="age">
<get internalName="readAge"/>
</property>
<property name="dateOfBirth">
<get internalName="readDOB"/>
<put internalName="writeDOB"/>
</property>
<property name="mstatus">
<get/>
<put/>
</property>
</public>
<script language="VBScript">
<![CDATA[
Dim sname ' 可讀寫(xiě)的 sname 屬性(沒(méi)有函數(shù))。
Dim gDOB ' 用來(lái)保存出生日期的全局變量。
Dim gMStatus ' 用來(lái)保存材料狀態(tài)的全局變量。
Function readDOB()
' Gets value of dateOfBirth property.
readDOB = gDOB
End Function
Function writeDOB(newDOB)
' 設(shè)置 dateOfBirth 屬性的值。
If isDate(gDOB) Then
' 錯(cuò)誤檢查。
gDOB = newDOB
End If
End Function
Function readAge()
'計(jì)算只讀 age 的屬性。
If isDate(gDOB) Then
dobM = DatePart("m", gDOB)
dobD = DatePart("d", gDOB)
dobY = DatePart("yyyy", gDOB)
todayY = DatePart("yyyy", Date)
age = todayY - dobY
' 如果今年還沒(méi)有過(guò)生日,則進(jìn)行調(diào)整。
bday = DateValue(dobM & "/" & dobD & "/" & todayY)
If DateDiff("d", bday, DateValue(Date)) < 0 Then
age = age - 1
End If
readAge = age
End If
End Function
Function get_mstatus()
' 讀取 mstatus 屬性的值。
get_mstatus = gMStatus
End Function
Function put_mstatus(s)
' 寫(xiě)入 mstatus 屬性的值。
If s = "M" Or s = "S" Then
gMStatus = s
Else
gMStatus = "?"
End If
End Function
]]>
</script>
<event> 元素 | <method> 元素 | 說(shuō)明事件 | 說(shuō)明方法 | 說(shuō)明屬性