in questo caso avviene un passaggio di una classe in un altra
Più precisamente avviene un passaggio dei valori, contenuti in una variabile di tipo Struttura, da una Classe ad un'altra.... ma con il Modulo è sostanzialmente uguale.
Ti passo, infatti, un semplicissimo esempio.
Nella Classe principale avremo questo codice:
Public Module1 As New Module1 ' Istanziamo il Modulo
Public Struct strutturaModello
prB As Byte
prI As Integer
End Struct
' Dichiariamo la variabile della Struttura come array con numero di elementi indefinito:
Private prima As New StrutturaModello[]
Public Sub Form_Open()
Dim a As Byte
' Dichiariamo un'altra variabile del tipo della Struttura modello:
Dim seconda As StrutturaModello
' Assegnamo i valori agli elementi della variabile normale di tipo Struttura:
For a = 0 To 9
seconda = New StrutturaModello
With seconda
.prB = a
.prI = 1000 + a
End With
' La variabile Struttura array vuole una variabile Struttura - non array - del tipo "StrutturaModello":
prima.Add(seconda)
Next
' Passiamo i valori contenuti dalla variabile array di tipo Struttura al Modulo:
Module1.prova(prima)
End
Nel Modulo avremo:
' Dichiariamo una "Struttura" avente medesimi campi della "Struttura"
' presente nella Classe principale, e medesimo nome.
' Anche i nomi degli elementi della Struttura saranno uguali
' a quelli della Struttura dichiarata nella Classe principale:
Public Struct strutturaModello
prB As Byte
prI As Integer
End Struct
' La routine, che viene richiamata dalla funzione chiamante presente nella Classe principale,
' riceve la variabile dalla Classe principale e l'assegna alla variabile di tipo "Struttura" del corrente Modulo:
Public Sub prova(var2 As StrutturaModello[])
Dim j As Byte
For j = 0 To 9
With var2[j]
Print .prB, .prI
End With
Next
End
Provalo un po'.
quello che vorrei fare io è costruire una struttura e creare un array dinamico con la stessa
questo in un modulo così da poterla vedere in tutti i form del progetto
L'esempio, sopra esposto, funziona regolarmente anche se la
Struttura principale è dichiarata ed istanziata all'interno di un Modulo_1, e se i valori contenuti dalla relativa variabile vengono passati ad una variabile, di quel analogo tipo di
Struttura, dichiarata in un Modulo_2. Quindi, appunto, passaggio di valori fra due Moduli (e non più fra Classe principale e Modulo).