Visual Basic - propiedad por defecto (clases)

Life is soft - evento anual de software empresarial
 
Vista:

propiedad por defecto (clases)

Publicado por Josep (2 intervenciones) el 02/10/2003 11:11:05
En un módulo de clase, como puedo especificar que una propiedad es la propiedad por defecto?
Me explico, con los objetos recordset si hacemos rs("campo1")=0 es lo mismo que hacer rs("campo1").value=0 es decir, que la propiedad value se supone por defecto...
Como puedo hacer lo mismo pero con una propiedad de mi clase??
Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:propiedad por defecto (clases)

Publicado por Fernando (3 intervenciones) el 02/10/2003 18:00:52
Con el cursor dentro de la definición de la propiedad

Herramientas -> Atributos del procedimiento -> Avanzados -> ID del procedimiento -> (Predeterminado)

De nada
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

una cosa mas...

Publicado por Josep (26 intervenciones) el 03/10/2003 14:40:29
muchas gracias, una cosita más.. resulta que tengo una variable de tipo colección de este objeto que queria poner la propiedada por defecto, o sea en la clase tengo :

Public clsFields As New Collection 'colleccion de objetos

en el formulario tengo:
dim c as new clsFields

pero cuando hago
c("campo1")="X"
me da el error "referencia no válida o sin clasificar"
si pongo c("campo1").value="X" no da ningún error (value es la propiedad por defecto).
y tengo puesta la propiedad por defecto del objeto y en las colecciones, la propiedad por defecto es item. Puedes ayudarme?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:una cosa mas...

Publicado por Fernando (3 intervenciones) el 03/10/2003 14:51:14
Public cDatos As new Collection

Public Property Get Value(Elemento As String) As Variant
. . .
. . .
Value = cDatos.Item(Elemento)
. . .
. . .
End Property

Public Property Let Value(Elemento As String, V As Variant)
. . .
cDatos.Item(Elemento) = V
. . .
End Property

y Value definido como predeterminado
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

para Fernando

Publicado por Josep (26 intervenciones) el 07/10/2003 09:32:49
Antes de todo gracias por tu ayuda... pero continuo con mi problema... necesito hacer algo similar a los recordsets o sea, pasar de esto:
rs.fields("campo").value=valor
a esto:
rs("campo")=valor

Si hago lo que me dices la cosa quedaria así:
rs.value("campo")=valor

A demás de la propiedad value (x defecto) también tengo la propiedad name (ej: rs(1).name i no rs.name(1) )

Para hacer esto tengo:
- 1 clase campo (clsCampo) con las propiedades value as variant y name as string.
- 1 clase clsDatos con una variable clsCampos que es una coleccion de elemtos clsCampo.
Lo que necesito es que la propiedad por defecto de la clase clsCampo sea la value, no que la clase clsDatos tenga una propiedad por defecto que sea value... y poniendo El identificador del procedimiento a predeterminado en la clsCampo la instruccion :

d as new clsDatos
d("campo")=valor ' da un error nº argumentos erronio o asignación de la propiedad no válida

Puedes ayudarme?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar