Creare array di oggetti: differenze tra le versioni
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 1: | Riga 1: | ||
Nei primi due esempi che faremo, verrà creato un | Nei primi due esempi che faremo, verrà creato un array |[[#Note|1]]| indefinito di oggetti. Per fare ciò sarà necessario l'uso del metodo ''.add'' con una variabile array di tipo "''oggetto''". | ||
<FONT color=B22222>'''1'''</font> - Uso del metodo ''.Add'' con una variabile array | <FONT color=B22222>'''1'''</font> - Uso del metodo ''.Add'' con una variabile array del medesimo tipo dell'oggetto che sarà contenuto: | ||
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 | |||
<FONT color=B22222>'''2'''</font> - Uso del metodo ''.Add'' con una variabile array di tipo "''oggetto''" e con specificazione dell'elemento dell'array nel quale inserire la Label: | |||
'''Public''' Sub Button1_Click() | '''Public''' Sub Button1_Click() | ||
Dim obj As New Object[] | |||
Dim c, i As Integer | |||
obj.Add(Label) | obj.Add(Label) | ||
| Riga 36: | Riga 58: | ||
<FONT color=B22222>''' | <FONT color=B22222>'''3'''</font> - Uso del metodo ''.Add'' con una variabile array di tipo "''oggetto''" e senza specificazione dell'elemento dell'array nel quale inserire un Form: | ||
Private obja As New Object[] | Private obja As New Object[] | ||
Private k As Integer | Private k As Integer | ||
| Riga 76: | Riga 95: | ||
'''End''' | '''End''' | ||
In questo terzo esempio si potrà evitare l'uso della variabile di tipo "''oggetto''" e del relativo metodo ''.add'', ma si dovrà porre un array di dimensioni <SPAN style="text-decoration:underline">definite</span>: | In questo terzo esempio si potrà evitare l'uso della variabile di tipo "''oggetto''" e del relativo metodo ''.add'', ma si dovrà porre un array di dimensioni <SPAN style="text-decoration:underline">definite</span>: | ||
Private Lblarray As New Label[9] <Font Color= #006400>' ''è posto il limite massimo a 10 oggetti ("array di 10 elementi: da 0 a 9")''</font> | Private Lblarray As New Label[9] <Font Color= #006400>' ''è posto il limite massimo a 10 oggetti ("array di 10 elementi: da 0 a 9")''</font> | ||
Private a As Integer | Private a As Integer | ||
| Riga 117: | Riga 131: | ||
---- | ---- | ||
==Note== | |||
[1] Un ''Array'' è un insieme di elementi del medesimo tipo. Pertanto un ''Array'' del tipo Integer sarà un insieme di valori ''interi''. | [1] Un ''Array'' è un insieme di elementi del medesimo tipo. Pertanto un ''Array'' del tipo Integer sarà un insieme di valori ''interi''. | ||
Versione delle 16:52, 13 ott 2012
Nei primi due esempi che faremo, verrà creato un array |1| indefinito di oggetti. Per fare ciò sarà necessario l'uso del metodo .add con una variabile array di tipo "oggetto".
1 - Uso del metodo .Add con una variabile array del medesimo tipo dell'oggetto che sarà contenuto:
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
2 - Uso del metodo .Add con una variabile array di tipo "oggetto" e con specificazione dell'elemento dell'array nel quale inserire la Label:
Public Sub Button1_Click()
Dim obj As New Object[]
Dim c, i As Integer
obj.Add(Label)
' La sintassi "New Label(Me)" istruisce l'interprete
' che l'oggetto deve essere creato ed assegnato al Form (Parent):
obj[i] = New Label(Me)
' Ad ogni clic sul tasto viene mostrata la Label sul form:
With obj[i]
.X = 10 * i
.Y = c
.width = 100
.height = 20
.text = "Nuova Label"
End With
c += 30
' Viene incrementata la variabile relativa alla cella dell'array di indice 0:
Inc i
End
3 - Uso del metodo .Add con una variabile array di tipo "oggetto" e senza specificazione dell'elemento dell'array nel quale inserire un Form:
Private obja As New Object[]
Private k As Integer
Private j As Byte
Public Sub Button1_Click()
Dim fo As Form
Dim box As New Form
' istanzio un Form:
fo = New Form As "fo"
' ...e lo aggiungo ad un elemento dell'array:
obja.Add(fo)
' evito di superare il numero di elementi dell'array:
If j > obja.max Then Return
k = k + 60
box = obja[j]
' Ad ogni clic sul tasto viene mostrato un Form:
With box
.W = 150
.H = 150
.X = k
.Y = k
.Caption = "Nuovo Form"
.Show
.TopOnly = True
End With
' Viene incrementata la variabile relativa alla cella dell'array di indice 0:
Inc j
End
In questo terzo esempio si potrà evitare l'uso della variabile di tipo "oggetto" e del relativo metodo .add, ma si dovrà porre un array di dimensioni definite:
Private Lblarray As New Label[9] ' è posto il limite massimo a 10 oggetti ("array di 10 elementi: da 0 a 9")
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
Note
[1] Un Array è un insieme di elementi del medesimo tipo. Pertanto un Array del tipo Integer sarà un insieme di valori interi.