Differenze tra le versioni di "Variabile del tipo di una Classe specifica creata"

Da Gambas-it.org - Wikipedia.
 
(Una versione intermedia di uno stesso utente non è mostrata)
Riga 98: Riga 98:
  
 
Nella Classe principale "FMain.Class" andiamo ad utilizzare la Classe particolare da noi creata, semplicemente creandone una variabile array e caricando i valori negli elementi di tale variabile array:
 
Nella Classe principale "FMain.Class" andiamo ad utilizzare la Classe particolare da noi creata, semplicemente creandone una variabile array e caricando i valori negli elementi di tale variabile array:
  <FONT color=gray>' ''Dichiara due variabili di tipo classe "Clval":
+
  <FONT color=gray>' ''Dichiara due variabili di tipo classe "Clval":''</font>
 
   
 
   
 
  Private clval1 As New Clcreata[]  <FONT color=gray>' ''una come array con numero di elementi <U>non</u> definito''</font>
 
  Private clval1 As New Clcreata[]  <FONT color=gray>' ''una come array con numero di elementi <U>non</u> definito''</font>
Riga 105: Riga 105:
 
  Public Sub Form_Open()
 
  Public Sub Form_Open()
 
   Dim a As Byte
 
   Dim a As Byte
   Dim clval2 As Clcreata  <FONT color=gray>'...''e un'altra ordinaria:''</font>
+
   Dim clval2 As Clcreata  <FONT color=gray>'...''e un'altra ordinaria''</font>
 
   
 
   
 
   For a = 0 To 99
 
   For a = 0 To 99

Versione attuale delle 05:25, 21 giu 2024

Come è noto, è possibile creare via codice una particolare Classe, fornita di Proprietà, Metodi ed Eventi. [nota 1]

Variabili del tipo della Classe specifica creata

La variabile per gestire le proprietà, oggetti, etc di una Classe particolare da noi creata deve essere del tipo di detta Classe particolare:

' Dichiariamo la variabile del tipo della Classe specifica:
 Private vrCl As Clcreata


Public Sub Button1_Click()

 With vrCl = New Clcreata
   .vB = 1
   .vI = 1001
   .v$ = "prova" & .vB
 End With

' Gestiamo ora la variabile di tipo Button, crandone un paio:

 With vrCl.bu = New Button(Me) As "bu"
   .X = 10
   .Y = 10
   .W = 100
   .H = 100
   .Text = "Bu"
 End With

 With vrCl.bu = New Button(Me) As "bu"
   .X = 200
   .Y = 10
   .W = 100
   .H = 100
   .Text = "Bu2"
 End With

End


Public Sub bu_Click()

 With vrCl
   Print .vB
   Print .vI
   Print .v$
 End With

Print Last.Text

End


Utilizzare una Classe particolare con una variabile di tipo Variant

Possiamo caricare anche in una variabile di tipo Variant le Proprietà e gli elementi che costituiscono la nostra Classe particolare creata:

Public Sub Button1_Click()

 Dim xx As Variant

 With xx = New Clcreata
   .vB = 19
   .vI = 1900
   .v$ = "prova" & .vB
 End With

 With xx
   Print .vB
   Print .vI
   Print .v$
 End With

End


Uso di una variabile del tipo della Classe particolare e di una variabile di tipo Variant

Public Sub Button1_Click()

 Dim rr As Clcreata
 Dim vv As Variant

 With rr = New Clcreata
   .vB = 1
   .vI = 1001
   .v$ = "prova" & .vB
 End With

' Trasferiamo i valori da una variabile all'altra:
 ali = rr

 With ali
   Print .vB
   Print .vI
   Print .v$
 End With

End


Variabile array di tipo di una Classe creata

Possiamo gestire le proprietà di una particolare Classe, da noi creata, anche mediante una variabile array.

Nella Classe principale "FMain.Class" andiamo ad utilizzare la Classe particolare da noi creata, semplicemente creandone una variabile array e caricando i valori negli elementi di tale variabile array:

' Dichiara due variabili di tipo classe "Clval":

Private clval1 As New Clcreata[]   ' una come array con numero di elementi non definito


Public Sub Form_Open()
 Dim a As Byte
 Dim clval2 As Clcreata  '...e un'altra ordinaria

 For a = 0 To 99
' assegna i valori ai campi della variabile di tipo classe "Clval":
   With clval2 = New Clcreata
     .vB = a
     .vI = 1000 + CInt(a)
     .v$ = "prova " & Str(a)
   End With
   clval1.Add(clval2)
 Next

End


Public Sub Button1_Click()

 Dim a As Byte

' Mostra in console i risultati:
 For a = 0 To 99
   With clval1[a]
     Print .vB
     Print .vI
     Print .v$
   End With
 Next
 
End


Note

[1] Al riguardo vedere la seguente pagina: Creare da codice una Classe specifica