Autore Topic: Ricerca funzione  (Letto 839 volte)

Offline Boccaccio

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
    • http://www.xcommzone.com
Ricerca funzione
« il: 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!

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: Ricerca funzione
« Risposta #1 il: 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 è:

Codice: [Seleziona]
MiaStringa = Class.Copy(Stringa_da_copiare)


Era questo che intendevi?

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Ricerca funzione
« Risposta #2 il: 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.

Offline Boccaccio

  • Gamberetto
  • *
  • Post: 6
    • Mostra profilo
    • http://www.xcommzone.com
Re: Ricerca funzione
« Risposta #3 il: 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

Command = "Key"
MyKey = 55
MyColor = 445678

in VB in modalità "Write" avrei scritto:

CallByName Keyboard, Command, VbMethod, MyColor, N_Key

mentre in modalità "Read" avrei scritto:

Var = CallByName (Keyboard, Command, VbMethod, MyColor, N_Key)

come si può ottenere una funzionalità simile su gambas?

Grazie per la risposta!