可以用兩種方式來(lái)說(shuō)明屬性:
還可以將屬性標(biāo)記為腳本部件的缺省值。
要作為簡(jiǎn)單值來(lái)說(shuō)明一個(gè)屬性
注意 CDATA 項(xiàng)是必需的,以使 <script> 元素中的腳本成為不透明的。詳細(xì)信息請(qǐng)參閱腳本部件文件和 XML 一致性。
<public> <property name="name"/> <property name="tag" internalName="tagVar"/> </public> <script language="VBScript"> <![CDATA[ Dim name name = "script component" ' Initializes the value of name property. Dim tagVar tagVar = "10" ' Initializes the value of tag property. ]]> </script>
使用函數(shù)來(lái)說(shuō)明屬性與說(shuō)明方法的方式類(lèi)似。
要使用函數(shù)來(lái)說(shuō)明一個(gè)屬性
該過(guò)程的名稱(chēng)必須與在 <property> 元素中指定的內(nèi)部名稱(chēng)一致。如果沒(méi)有指定 internalName 屬性,則對(duì)于讀取函數(shù),函數(shù)名稱(chēng)必須是該函數(shù)的名字再加上 get_ 前綴,對(duì)于寫(xiě)入函數(shù),則應(yīng)加上 put_ 前綴。
注意 CDATA 項(xiàng)是必需的,使 <script> 元素中的腳本稱(chēng)為不透明的。詳細(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> </public> <script language="VBScript"> <![CDATA[ Dim sname ' 可讀寫(xiě)的 sname 屬性(非函數(shù))。 Dim gDOB ' 用來(lái)存儲(chǔ)生日日期的全局變量。 Function readDOB() ' 取 dateOfBirth 屬性的值。 readDOB = gDOB End Function Function writeDOB(newDOB) ' 設(shè)置 dateOfBirth 屬性的值。 If isDate(gDOB) Then 'Error checking 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 ]]> </script>
可以給腳本部件指定一個(gè)缺省屬性,以便宿主應(yīng)用程序不必顯式地寫(xiě)出屬性的名字就可以獲取或設(shè)置該屬性的值。例如,如果已聲明了一個(gè)稱(chēng)為 sname 的屬性,并將其標(biāo)記為缺省的,則可以在 Visual Basic 中用下述任何一種方式來(lái)使用該屬性:
Set component = CreateObject("Component.MyComponent") n = component.sname ' 顯式地獲取屬性。 n = component ' 按缺省情況獲取 sname 的值。
要指定缺省屬性,請(qǐng)包括一個(gè)將特殊的派遣標(biāo)識(shí)符(dispid)指定給該方法的屬性。關(guān)于 dispid 的詳細(xì)信息,請(qǐng)參閱說(shuō)明事件。
要指定一個(gè)缺省屬性
<property name="sname" dispid="0"/>
注意 這個(gè)技術(shù)可用來(lái)指定一個(gè)缺省方法或一個(gè)缺省屬性,但不能同時(shí)指定。在腳本部件中只能有一個(gè)元素的 dispid 為零。