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