Differenze tra le versioni di "Richiamare un Metodo di un oggetto con la Classe Object"
(Creata pagina con 'E' possibile richiamare dinamicamente ed utilizzare un Metodo di un oggetto mediante la funzione ''.Call()'' della Classe ''Object''. La sintassi è la seguente: Object.Call...') |
|||
Riga 3: | Riga 3: | ||
La sintassi è la seguente: | La sintassi è la seguente: | ||
Object.Call ( Oggetto As Object, Metodo As String [ , Argomenti As Array ] ) As Variant | Object.Call ( Oggetto As Object, Metodo As String [ , Argomenti As Array ] ) As Variant | ||
− | Laddove ''Oggetto'' è l'oggetto di cui viene richiamato il ''Metodo'' che verrà indicato come stringa. ''Argomenti'' è un array (vettore) degli argomenti previsti e passati al ''Metodo'' dell'oggetto. Se il Metodo non prevede argomenti, questo terzo parametro può essere omesso. | + | Laddove ''Oggetto'' è l'oggetto di cui viene richiamato il ''Metodo'' che verrà indicato come stringa. ''Argomenti'' è un array (vettore) degli argomenti previsti e passati al ''Metodo'' dell'oggetto. Se il Metodo non prevede argomenti, questo terzo parametro può essere omesso. Se gli argomenti sono più di uno e di diverso tipo, è possibile utilizzare un vettore di tipo ''Object[]''. |
Tale funzione ''Object.Call()'' ritorna il valore previsto per quel Metodo. | Tale funzione ''Object.Call()'' ritorna il valore previsto per quel Metodo. |
Versione delle 18:40, 7 dic 2013
E' possibile richiamare dinamicamente ed utilizzare un Metodo di un oggetto mediante la funzione .Call() della Classe Object.
La sintassi è la seguente:
Object.Call ( Oggetto As Object, Metodo As String [ , Argomenti As Array ] ) As Variant
Laddove Oggetto è l'oggetto di cui viene richiamato il Metodo che verrà indicato come stringa. Argomenti è un array (vettore) degli argomenti previsti e passati al Metodo dell'oggetto. Se il Metodo non prevede argomenti, questo terzo parametro può essere omesso. Se gli argomenti sono più di uno e di diverso tipo, è possibile utilizzare un vettore di tipo Object[].
Tale funzione Object.Call() ritorna il valore previsto per quel Metodo.
Esempi pratici
Vediamo di seguito un esempio in cui viene richiamato il Metodo .Read() della Classe Byte[]:
Public Sub Button1_Click() Dim s As String Dim l As Long Dim fl As File Dim ff As New File[] Dim j As Byte s = "/percorso/di/un/file" l = Stat(s).Size bb = New Byte[Stat(s).Size] fl = Open s For Read ff.Add(fl) Object.Call(bb, "Read", ff) Print bb.Count For j = 0 To l - 1 Print bb[j] Next End
In quest'altro esempio, invece, l'oggetto è una Label, e verrà richiamato il suo Metodo .Delete. Inoltre, sul Form è posto sin dall'inizio un Button:
Private lb As Label Public Sub Form_Open() With lb = New Label(Me) .W = 100 .H = 50 .Background = Color.Yellow End With End Public Sub Button1_Click() Object.Call(lb, "Delete") End
In questo terzo esempio viene caricato un file di testo mediante il solito metodo .Load() della Classe File:
Public Sub Button1_Click() Dim percorsoFile, s As String Dim ss As New String[] percorsoFile = "/percorso/di/un/file/di/testo" ss.Add(percosoFile) s = Object.Call(File, "Load", ss) Print s End