Istanziare un oggetto mediante la Classe "Object"

Da Gambas-it.org - Wikipedia.

Un Oggetto [nota 1] può essere creato e caratterizzato nelle sue Proprietà anche mediante i metodi statici della Classe Object.


Creare un Oggetto di una Classe

Analogamente all'operatore New per generare un oggetto di una Classe con Object si utilizzerà il metodo .New() secondo la sintassi:

variabile_oggetto = Object.New("Nome_della_Classe" As String, ["Genitore" As String]) As Object

Si dovrà comunque nelle consuete modalità dichiarare la variabile di riferimento dell'Oggetto da creare.
Se si intende, potendo, non assegnare l'Oggetto ad alcun Genitore, si ometterà il secondo parametro.


Assegnare un Oggetto ad un Gruppo

Per consentire la gestione degli eventi tipici della Classe di appartenenza dell'Oggetto, bisognerà attribuire all'Oggetto medesimo un Gruppo. Con la Classe Object si potrà utilizzare il metodo .Attach() secondo la seguente sintassi:

Object.Attach(Variabile_dell'Oggetto As Object, Genitore As Object, "Nome_del_Gruppo" As String )


Impostare una proprietà dell'Oggetto

Dopo aver creato l'oggetto, si potranno assegnare valorTabStrip1i alle sue proprietà, previste ovviamente dalla sua Classe di appartenenza, mediante il metodo .SetProperty() secondo la sintassi:

 Object.SetProperty(Variabile_dell'Oggetto_creato As Object, "Nome_della_Proprietà" As String, "Valore_da_assegare" As Variant)

Da sottolineare che l'assegnazione del valore va effettuata con la medesima modalità prevista normalmente dalla sua proprietà.


Ottenere il valore di una proprietà dell'Oggetto

Per ottenenere il valore precedentemente assegnato di una proprietà dell'Oggetto, si utilizzerà il metodo .GetProperty() secondo la sintassi:

Object.GetProperty(Variabile_dell'Oggetto_creato As Object, "Nome_della_Proprietà" As String ) As Variant


Esempio pratico

Mostriamo un semplice esempio, nel quale verrà creato un oggetto appartenente alla Classe Label. Si procederà, quindi, ad attribuire detto Oggetto ad un Gruppo, ad assegnare un valore ad alcune sue proprietà, e successivamente a ricavare il valore di una proprietà:

Private lb As Label


Public Sub Form_Open()

' Viene creata una "Label" il cui Genitore è il Form principale:
  lb = Object.New("Label", [Me])

' Si attribuisce un "Gruppo" all'Oggetto per la gestione dei suoi Eventi.
' Da ricordare che il secondo parametro deve essere sempre "Me", anche se l'oggetto è posto all'interno di un Contenitore "figlio" del Form:
  Object.Attach(lb, Me, "NomeGruppo")

' Si assegnano i valori ad alcune proprietà dell'oggetto "Label" creato:
  Object.SetProperty(lb, "X", 100)
  Object.SetProperty(lb, "Y", 200)
  Object.SetProperty(lb, "W", 100)
  Object.SetProperty(lb, "H", 50)
  Object.SetProperty(lb, "BackGround", Color.Red)

End


Public Sub NomeGruppo_Enter()

 Dim lung as Integer

' Si ottiene il valore della proprietà "Width" dell'Oggetto:
  lung = Object.GetProperty(lb, "W")

  Print lung

End


Note

[1] Un Oggetto in Gambas è una struttura di dati che fornisce concretamente Proprietà, Metodi ed Eventi, previsti in astratto dalla "Classe" alla quale esso appartiene.