Istanziare un oggetto mediante la Classe "Object"
Un oggetto |1| può essere creato e caratterizzato nelle sue proprietà anche mediante i metodi statici della Classe Object.
Indice
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 valori 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 ssere 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 proprietà, variabili, metodi ed eventi.