Sono tornato sulla questione da me posta.
Ricapitolando: la mia intenzione è di ottenere più oggetti del medesimo tipo, però creandone
uno solo ogni qual volta io premo un tasto, e sempre mediante l'uso a livello di codice di un array che mi consenta di distinguerli per numero ai fini di una successiva gestione.
Nella mia risposta del
12 Luglio 2011,
00:08:11, ho inserito un listato, con il quale ho ottenuto un risultato finale funzionante in modo eguale al mio scopo ultimo (la gestione degli oggetti creati), però in questo caso
senza uso di array. Avevo escogitato lo stratagemma di un
falso array, legato al nome di ogni oggetto creato; nome che veniva così distinto da quelli attribuiti agli altri oggetti del medesimo tipo creati. Infatti, successivamente potevo eliminare l'oggetto operando sul suo nome.
Ora - mi sembra - di aver trovato la soluzione (che mi pare più semplice di quanto non avessi previsto) di creare più oggetti del medesimo tipo, e sempre uno solo ad ogni click su tasto, ma con l'uso di array (esperimento compiuto in Gambas 3):
' Gambas class file
Private Lblarray[5] As Label ' pongo il limite di prova massimo a 5 oggetti ("array di 5 elementi")
Private a As Integer
Private b As Integer
Public Sub Button1_Click() ' Crea UNA SOLA Label ogni qualvolta viene premuto Button1
Dim c, d As Integer
b += 50
' crea la Label e la distingue dalle altre eventuali con un numero contenuto nella variabile “ a “,
' (ma questa volta non in aggiunta alla sua denominazione).
Lblarray[a] = New Label(Me)
Lblarray[a].Border = Border.Raised ' definisco le caratteristiche della label
Lblarray[a].W = 100 ' in modo tale da posizionare le varie Label ottenute
Lblarray[a].H = 20 ' in luoghi diversi sul Form
Lblarray[a].X = b '
Lblarray[a].Y = b '
Print Lblarray[a].ID ' per prova trovo l'ID della Label appena creata e distinta con la variabile "a" dell'array.
' Per ulteriore prova intendo distruggere una Label precedentemente creata
' indicandone (questa è la prova effettiva) il numero assegnatole con la variabile " a ".
If a = 4 Then
d = InputBox("Elimina una label (il numero deve essere compreso fra 0 e 4)")
Print Lblarray[d].ID ' ri-ottengo per riprova l'Id della Label scelta in InputBox
Lblarray[d].delete ' elimina la Label segnata dalla variabile dell'array scelta in InputBox
Endif
a = a + 1 ' incremento la variabile relativa alla cella dell'array di indice 0
End
Ci sono ?