• Lunes 18 de Noviembre de 2024, 07:38

Autor Tema:  Re: Problema con arrays dinámicos  (Leído 1051 veces)

ROBER.29

  • Miembro MUY activo
  • ***
  • Mensajes: 421
    • Ver Perfil
    • http://www.contrapixel.com
Re: Problema con arrays dinámicos
« en: Viernes 13 de Diciembre de 2002, 09:45 »
0
El problema que tengo la verdad es que no se si tiene solución. Lo que me pasa es que yo tengo en un formulario un array dinámico de dos dimensiones y desde otro formulario queiro porder tener también acceso a él, he intentado declararlo como público donde le creo pero me da error.

Declarándolo con Dim no me da error pero claro está que no puedo acceder a él desde otro formulario y declarándolo con Public si.

¿Por q puede ser? ¿Como lo podría solucionar?

Gracias por atenderme.
Saludos,
Roberto
Roberto García
Moderador de Visual Basic.
Gerente
[contra]PixeL S.L.
Valladolid

javierbalk

  • Miembro MUY activo
  • ***
  • Mensajes: 142
  • Nacionalidad: 00
    • Ver Perfil
    • Print preview y grabar PDF en Visual Basic 6
Problema con arrays dinámicos
« Respuesta #1 en: Viernes 13 de Diciembre de 2002, 21:14 »
0
Hola Robert:

No se asusten tan rápido!! La mayoría de las cosas tienen solución (muchas puede ser que uno no las sepa, me atajo)

Para tu caso hay varias:

1) Declarar el array en un módulo como public.

2) Declararlo en el formulario con Private o Dim y hacer un procedimiento de propiedad público para accederlo:

Private VariableMiArray() as Variant

Redim... etc

Public Property Get MiArray(Dimension1 As Long, dimension2 As Long) As Variant
    MiArray = VariableMiArray(Dimension1, dimension2)
End Property

Public Property Let MiArray(Dimension1 As Long, dimension2 As Long, NuevoValor As Variant)
    VariableMiArray(Dimension1, dimension2) = NuevoValor
End Property

desde Form2 lo accedes con Form1.MiArray

3) Algo parecido, pero de una manera diferente.

A) Si solo tienes que leerlo desde Form2:
En Form1 va:

Public Property Let MiArray(nArray As Variant)
    VariableMiArray = nArray
End Property

desde Form2 lo accedes con Form1.MiArray

B) Si tines que leerlo, y poder modificarlo:

En Form1 va:

Public Property Get MiArray() As Variant
    MiArray = VariableMiArray
End Property

Public Property Let MiArray(nArray As Variant)
    VariableMiArray = nArray
End Property

En form2 para leerlo:
Form1.MiArray(indice1,indice2)

Para modificarlo:
    Dim ElArray
   
    ElArray = Form1.MiArray
    ElArray(1, 1) = "Otra cosa"
    Form1.MiArray = ElArray

Y podría haber más opciones.

Saludos,
Javier