Creare array di oggetti: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 26: | Riga 26: | ||
End With | End With | ||
Next | Next | ||
'''End''' | |||
==Creare un array di dimensioni <SPAN style="text-decoration:underline">definite</span> a priori== | |||
In questo caso viene posto a priori un limite massimo agli elementi dell'array. L'array sarà riempito di volta in volta che si preme un tasto: | |||
'''Private''' Lblarray As New Label[10] <Font Color= #006400>' ''è posto il limite massimo a 10 oggetti''</font> | |||
'''Private''' a As Integer | |||
'''Private''' b As Integer | |||
'''Public''' Sub Button1_Click() <Font Color= #006400>' ''Crea una Label ogni qualvolta viene premuto Button1''</font> | |||
Dim c, d As Integer | |||
b += 50 | |||
<FONT color=006400>' ''La sintassi "New Label(Me)" istruisce l'interprete'' | |||
' ''che l'oggetto deve essere creato ed assegnato al Form (Parent):''</font> | |||
Lblarray[a] = New Label(Me) | |||
<Font Color= #006400>' ''Viene mostrata la Label sul Form:''</font> | |||
With Lblarray[a] | |||
.Border = Border.Raised <Font Color= #006400>' ''sono definite le caratteristiche della label...''</font> | |||
.W = 100 | |||
.H = 20 | |||
.X = b | |||
.Y = b | |||
.text = "Nuova Label" | |||
End With | |||
<Font Color= #006400>' ''Viene incrementata la variabile relativa alla cella dell'array di indice 0:''</font> | |||
Inc a | |||
'''End''' | '''End''' | ||
| Riga 67: | Riga 101: | ||
==Creare un array di | ==Creare un array di oggetti di tipo diverso== | ||
Come sappiamo, un ''array'' è un insieme di elementi del medesimo tipo. Per poter creare un array che ''di fatto'' contenga oggetti di tipo diverso, sarà necessario individuare, se possibile, un tipo di variabile che possa a sua volta ''rappresentare'', e dunque contenere tali oggetti diversi. La variabile in questione è quella di tipo: ''Object'', la quale si pone rispetto ai vari oggetti in un rapporto di ''genus'' e ''species''. | |||
'''Private''' | |||
'''Private''' | Nell'esempio seguente bisognerà porre sul ''Form'' quattro ''Button'' a ciascuno dei quali sarà attributi il nome ''crea'' come nome del Gruppo. Quindi il codice sarà il seguente: | ||
'''Private''' | '''Private''' ogg As New Object[] | ||
'''Private''' i As Integer | |||
'''Private''' oy As Integer | |||
'''Public''' Sub | '''Public''' Sub Form_Open() | ||
'''End''' | |||
'''Public''' Sub crea_Click() | |||
Dim | Dim bt As Button | ||
Dim lb As Label | |||
Dim tb As ToggleButton | |||
Dim te As TextEdit | |||
Select Case Last.Text | |||
Case "Button" | |||
bt = New Button(Me) As "button" | |||
ogg.Add(bt) | |||
Case "Label" | |||
lb = New Label(Me) As "label" | |||
ogg.Add(lb) | |||
Case "ToggleButton" | |||
tb = New ToggleButton(Me) As "toggleButton" | |||
ogg.Add(tb) | |||
Case "TextEdit" | |||
te = New TextEdit(Me) As "textEdit" | |||
ogg.Add(te) | |||
End Select | |||
With ogg[i] | |||
.X = 10 | |||
.Y = oy | |||
.width = 150 | |||
.height = 40 | |||
.Font.Size = 7 | |||
.text = "Oggetto: " & ogg[i].Name | |||
End With | |||
oy += 40 | |||
i = i + 1 | |||
'''End''' | '''End''' | ||
Versione delle 06:04, 14 ott 2012
Verranno mostrati alcuni esempi per la creazione di oggetti mediante l'uso di un array. |1|
Semplice codice basilare per la creazione di un array del tipo di un oggetto
In questo caso l'array sarà creato e riempito immediatamente con gli oggetti del tipo stabilito:
Public Sub Form_Open()
Dim bt As Button
Dim ar As New Button[]
Dim j As Byte
For j = 0 To 9
bt = New Button(Me) As "bt" & j
ar.Add(bt)
Next
For j = 0 To 9
With ar[j]
.X = 10
.Y = 1 + (30 * j)
.W = 60
.H = 30
End With
Next
End
Creare un array di dimensioni definite a priori
In questo caso viene posto a priori un limite massimo agli elementi dell'array. L'array sarà riempito di volta in volta che si preme un tasto:
Private Lblarray As New Label[10] ' è posto il limite massimo a 10 oggetti Private a As Integer Private b As Integer Public Sub Button1_Click() ' Crea una Label ogni qualvolta viene premuto Button1 Dim c, d As Integer b += 50 ' La sintassi "New Label(Me)" istruisce l'interprete ' che l'oggetto deve essere creato ed assegnato al Form (Parent): Lblarray[a] = New Label(Me) ' Viene mostrata la Label sul Form: With Lblarray[a] .Border = Border.Raised ' sono definite le caratteristiche della label... .W = 100 .H = 20 .X = b .Y = b .text = "Nuova Label" End With ' Viene incrementata la variabile relativa alla cella dell'array di indice 0: Inc a End
Creare un array indefinito di oggetti del medesimo tipo
Private i As Integer
Private tasti As New Button[]
Private ts_y As Integer
Public Sub Button1_Click()
Dim bt As Button
bt = New Button(Me) As "tasto"
tasti.Add(bt)
With bt
.X = 10
.Y = ts_y
.width = 100
.height = 40
.text = "Tasto n. " & i
End With
ts_y += 40
i = i + 1
End
Public Sub tasto_Click() ' Andiamo a verificare il tasto premuto
Print "E' stato premuto il tasto n. " & tasti.Find(Last) |2|
End
Creare un array di oggetti di tipo diverso
Come sappiamo, un array è un insieme di elementi del medesimo tipo. Per poter creare un array che di fatto contenga oggetti di tipo diverso, sarà necessario individuare, se possibile, un tipo di variabile che possa a sua volta rappresentare, e dunque contenere tali oggetti diversi. La variabile in questione è quella di tipo: Object, la quale si pone rispetto ai vari oggetti in un rapporto di genus e species.
Nell'esempio seguente bisognerà porre sul Form quattro Button a ciascuno dei quali sarà attributi il nome crea come nome del Gruppo. Quindi il codice sarà il seguente:
Private ogg As New Object[]
Private i As Integer
Private oy As Integer
Public Sub Form_Open()
End
Public Sub crea_Click()
Dim bt As Button
Dim lb As Label
Dim tb As ToggleButton
Dim te As TextEdit
Select Case Last.Text
Case "Button"
bt = New Button(Me) As "button"
ogg.Add(bt)
Case "Label"
lb = New Label(Me) As "label"
ogg.Add(lb)
Case "ToggleButton"
tb = New ToggleButton(Me) As "toggleButton"
ogg.Add(tb)
Case "TextEdit"
te = New TextEdit(Me) As "textEdit"
ogg.Add(te)
End Select
With ogg[i]
.X = 10
.Y = oy
.width = 150
.height = 40
.Font.Size = 7
.text = "Oggetto: " & ogg[i].Name
End With
oy += 40
i = i + 1
End
Note
[1] Un Array è un insieme di elementi del medesimo tipo. Pertanto un Array del tipo Integer sarà un insieme di valori interi.
[2] tasti.Find(Last) ritorna la posizione nell'array del "Button" creato che è stato premuto.