Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Boccaccio - 19 Novembre 2009, 18:46:58
Titolo: Ricerca funzione
Inserito da: Boccaccio - 19 Novembre 2009, 18:46:58
Salve a tutti sono fresco fresco sia di gambas che di ubunto quindi vi prego di avere pazienza se dico qualche cosa fuori posto... :ehm:
La mia prima domanda (di altre 1000 che devo farvi!) è questa, come posso utilizzare la funzione di una classe richiamandola per nome o similare? in VB6 utilizzavo la funzione CallByname e passavo la classe per riferimento e funzione e i metodi come stringa. In gambas è possibile richiamare una classe e modificare la chiamata a una funzione contenuta nella classe passando la funzione stessa come variabile. Esiste un metodo?
Grazie anticipate per la risposta!
Titolo: Re: Ricerca funzione
Inserito da: Ceskho - 19 Novembre 2009, 19:00:23
Ciao e benvenuto....
Intanto si chiama ubuntu e non ubunto...;-)
Se hai una classe di nome Class che contiene, ad esempio, la funzione Copy che, supponiamo, copia una stringa allora la sintassi corretta è:
Titolo: Re: Ricerca funzione
Inserito da: md9327 - 19 Novembre 2009, 23:03:42
Credo si riferisca alla possibilità di chiamare un metodo, o funzione, di una classe dinamicamente.
In Gambas, esiste l'oggetto Object, che ha alcuni metodi per fare questo tipo di operazioni. Inoltre, è possibile anche caricare dinamicamente una classe esterna.
Comunque, leggendo la doc su Object, di cui ho anche utilizzato qualcuno dei suoi metodi, tu puoi:
- Object.Call: chiamare un metodo (da specificare), di un oggetto (da specificare), e passargli gli argomenti. Però, come anche in VB, devi sapere cosa passare, oppure il metodo deve poter acquisire un numero, o tipi, di parametri indefinito.
- Object.GetProperty; ritorna il valore di una proprietà di una classe.
- Object.SetProperty: imposta il calore di una proprietà di una classe.
e via dicendo...
Insomma, giocando con Object, puoi riuscire a fare quello che hai chiesto.
Titolo: Re: Ricerca funzione
Inserito da: Boccaccio - 20 Novembre 2009, 00:17:02
Citazione
Era questo che intendevi?
Non proprio (scusate per la U mancata)
Citazione
Credo si riferisca alla possibilità di chiamare un metodo, o funzione, di una classe dinamicamente.
Esatto! Vi faccio un esempio di quello che dovrei fare,
Creo una classe o utilizzo una già esistente,
'Class Keyboard
Public Function Key (Color as long, N_Key as integer) as Integer
' Code
end sub
Dopo da un form devo richiamare la funzione Key della classe Keyboard specificando la classe e passando la funzione per nome ovvero "Key" e di seguito i parametri Color e N_Key
Esempio:
Dim Command as string Dim MyColor as long Dim MyKey as Integer