Richiamare un Metodo o una Proprietà della Classe di un Oggetto inserito in una Collection

Da Gambas-it.org - Wikipedia.

Per richiamare ed utilizzare un Metodo o una Proprietà della Classe di un Oggetto, la cui variabile è inserita in una Collection, si potranno utilizzare almeno due modalità.


1a modalità

Facciamo l'esempio in cui, oltre al Form principale, l'applicazione possiede anche tre Form secondari, le cui variabili sono poste in una Collection. Si intende, usando la Collection, richiamare il Metodo ".Show()" della Classe Form per aprire il primo dei Form secondari, a una Proprietà del quale si attribuirà anche un valore.

Public Form_1 As New Form
Public Form_2 As New Form
Public Form_3 As New Form


Public Sub Form_Open()

 Dim cl As New Collection

 With Form_1 = New Form
   .W = 100
   .H = 100
   .x = 100
   .Y = 100
   .Title = "Testo qualsiasi Form_1"
 End With

 With cl
   .Add(Form_1, "chiave_Form_1")
   .Add(Form_2, "chiave_Form_2")
   .Add(Form_3, "chiave_Form_3")
 End With

' Richiama il metodo .Show() del "Form" per farlo aprire.
' Se il Metodo possiede anche uno o più parametri, saranno specificati anche i valori da passare.
 cl["chiave_Form_1"].Show()

 ' Analogamente per richiamare una Proprietà, assegnandole un valore:
 cl["chiave_Form_1"].Background = Color.Green

End


2a modalità

In quest'altro esempio si utilizzerà il Metodo "Object.Call()", per richiamare un Metodo della Classe dell'Oggetto considerato, nonché il Metodo "Object.SetProperty()" per assegnare un valore a una Proprietà dell'Oggetto.
Questa modalità risulta utile soprattutto se i Form secondari sono stati creati dall'IDE di Gambas e non da codice, come invece nella modalità precedente.

Private cl As New Collection


Public Sub Form_Open()

 With cl
   .Add(Form1, "chiave_Form1")
   .Add(Form2, "chiave_Form2")
   .Add(Form3, "chiave_Form3")
 End With

End


Public Sub Button1_Click()

' Richiama il metodo ".Show()" del "Form" per farlo aprire:
' Se il Metodo possiede anche uno o più parametri, saranno specificati anche i valori da passare.
 Object.Call(cl["chiave_Form1"], "Show", Null)

 ' Richiama la Proprietà ".Background" del "Form" e le assegna un valore:
 Object.SetProperty(cl["chiave_Form1"], "Background", Color.Green)

End