聲明一個(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>元素將屬性名稱映射到用來(lái)實(shí)現(xiàn)該屬性的過(guò)程。過(guò)程的名稱必須與在 <property> 元素中指定的內(nèi)部名稱一致。
當(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)名稱命名這些訪問(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ō)明屬性