Creare array di oggetti
Da Gambas-it.org - Wikipedia.
Versione del 15 apr 2012 alle 08:23 di Vuott (Discussione | contributi)
Nei primi due esempi che faremo, verrà creato un array 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 di tipo "oggetto" e con specificazione dell'elemento dell'array nel quale inserire la Label:
' Gambas class file Private obj As New Object[] c As Integer i As Integer Public Sub Button1_Click() obj.Add(Label) 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
2 - Uso del metodo .Add con una variabile array di tipo "oggetto" e senza specificazione dell'elemento dell'array nel quale inserire un Form:
' Gambas class file 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:
' Gambas class file 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 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