Richiamare e gestire più oggetti assegnati a variabili con medesimo identificatore
Usando un ciclo per creare più Oggetti, è possibile attribuire a essi il medesimo identificatore di variabile.
Di seguito mostriamo due modalità per richiamare e gestire nel prosieguo del codice glli Oggetti creati come sopra descritto.
Assegnando gli Oggetti a un vettore del loro medesimo tipo
Affinché nel codice i suddetti Oggetti possano essere richiamati e gestiti, si potrà assegnare ciascuno di essi a un elemento di un vettore del medesimo tipo di dato.
In tal modo, pur non potendo via codice aggiungere all'identificatore di ciascuna variabile un numero progressivo, si utilizzerà - come alternativa - la progressività numerica del vettore.
Nell'esempio che segue, saranno creati sul Form cinque Button, che verranno assegnati a cinque variabili del medesimo tipo ed aventi medesima denominazione (identificatore). Le cinque variabili saranno assegnate ad una variabile vettore (array) di tipo "Button[]". Ciascuna variabile così avrà come riferimento un indice del vettore. Ciascun Button potrà così essere gestito indirettamente: attraverso il vettore al quale è stato assegnato. In particolare, ogni variabile di tipo Button sarà individuata sulla base dell'indice dell'elemento che la contiene.
Private vettBt As New Button[]
Public Sub Form_Open()
Dim j As Byte
Dim bt As Button
For j = 0 To 4
With bt = New Button(Me) As "Butt"
.W = 30
.H = 20
.X = 50 * j
.Y = 50
End With
' Dopo aver creato il "Button", la rispettiva variabile viene assegnata ad un vettore di tipo "Button[]":
vettBt.Push(bt)
Next
End
Public Sub Butt_Click()
Dim b As Byte
' Scegliamo il numero di "indice" dell'array:
b = Val(InputBox("Immetti un numero da 0 a 4:"))
' Così abbiamo la possibilità di individuare la variabile del "Button" in base ad un numero comunque progressivo, e quindi gestire l'Oggetto:
vettBt[b].Delete
End
Usando l'Istruzione "Last"
Più semplicemente si potrà impegnare l'istruzione Last, evitando così l'uso di un vettore.
Public Sub Form_Open()
Dim b As Byte
Dim bt As Button
For b = 0 To 4
With bt = New Button(Me) As "Butt"
.W = 30
.H = 20
.X = 50 * b
.Y = 50
End With
Next
End
Public Sub Butt_Click()
Last.Delete
End