Creare array di oggetti

Da Gambas-it.org - Wikipedia.

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)
' 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


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

' 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