Puede exponer propiedades de dos formas:
También puede marcar una propiedad como el valor predeterminado de un componente de secuencia de comandos.
Para exponer una propiedad como un valor
Nota Es necesario incluir una sección CDATA para hacer opaca la secuencia de comandos del elemento <script>. Para obtener más información, consulte Archivos de componentes de secuencia de comandos y compatibilidad XML.
<public> <property name="name"/> <property name="tag" internalName="tagVar"/> </public> <script language="VBScript"> <![CDATA[ Dim name name = "componente de secuencia de comandos" ' Inicializa el valor de la propiedad name. Dim tagVar tagVar = "10" ' Inicializa el valor de la propiedad tag. ]]> </script>
Exponer una propiedad mediante funciones es parecido a exponer un método.
Para exponer una propiedad mediante funciones
Los nombres de los procedimientos deben coincidir con los nombres internos que especificó en el elemento <property>. Si no especificó un atributo internalName, los nombres de las funciones deben ser el nombre de la función con el prefijo get_ para una función de lectura y con un prefijo put_ para la función de escritura.
Nota Es necesario incluir una sección CDATA para hacer opaca la secuencia de comandos del elemento <script>. Para obtener más información, consulte Archivos de componentes de secuencia de comandos y compatibilidad XML.
<public> <property name="apellido"/> <property name="edad"> <get internalName="leerEdad"/> </property> <property name="fechaDeNacimiento"> <get internalName="leerFDN"/> <put internalName="escribirFDN"/> </property> </public> <script language="VBScript"> <![CDATA[ Dim sname ' Propiedad apellido de sólo lectura (sin funciones). Dim gDOB ' Variable global que se utiliza para almacenar la fecha de nacimiento. Function leerFDN() ' Obtiene el valor de la propiedad fecgaDeNacimiento. leerFDN = gDOB End Function Function escribirFDN(nuevaFDN) ' Establece el valor de la propiedad fechaDeNacimiento. If isDate(gDOB) Then 'Comprobación de errores gDOB = nuevaFDN End If End Function Function leerEdad() ' Calcula la propiedad de sólo lectura edad. If isDate(gDOB) Then fdnM = DatePart("m", gFDN) fdnD = DatePart("d", gFDN) fdnA = DatePart("yyyy", gFDN) hoyA = DatePart("yyyy", Date) edad = hoyA fdnA ' Ajustar si todavía no se han cumplido los años este año. cumplir = DateValue(fdnM & "/" & fdnD & "/" & hoyA) If DateDiff("d", cumplir, DateValue(Date)) < 0 Then edad = edad - 1 End If leerEdad = edad End If End Function ]]> </script>
Puede especificar una propiedad predeterminada para un componente de secuencia de comandos, con lo que la aplicación host puede obtener o establecer el valor de la propiedad sin llamar explícitamente a la propiedad. Por ejemplo, si ha expuesto una propiedad denominada apellido y la ha marcado como la predeterminada, puede trabajar con ella en Visual Basic de cualquiera de las formas siguientes:
Set componente = CreateObject("Componente.MiComponente") n = componente.apellido ' Obtiene la propiedad de forma explícita. n = componente ' Obtiene el valor de apellido como predeterminado.
Para especificar una propiedad determinada, incluya un atributo que asigne un identificador de envío (un dispId) al método. Para obtener más información acerca de los identificadores de envío, consulte Exponer eventos.
Para especificar una propiedad predeterminada
<property name="apellido" dispId="0"/>
Nota Esta técnica se puede utilizar tanto para asignar una propiedad predeterminada como un método predeterminado, pero no ambos. Sólo puede haber un único elemento en el componente de secuencia de comandos con el atributo dispId igual a cero.
Exponer eventos | Exponer métodos | Contenido de los archivos de componentes de secuencia de comandos | Archivos de componentes de secuencia de comandos y compatibilidad XML
Ayuda de Javascript y Vbscript para Javascripts.astalaweb.com. |