Newsgroup: it.comp.lang.visual-basic
Titolo: È Possibile Mettere Una Funzione In Una Variabile

                          Problema
Č Possibile Mettere Una Funzione In Una Variabile ? Cioč:
Private Sub Command1_click()
CHIAMATA = SECONDA
CHIAMATA
End Sub
Private Function PRIMA()
AAA = Fai_questo
End Function
Private Function SECONDA()
BBB = Fai_quello
End Function
GRAZIE A TUTTI
orf...@tin.it

Se ti riferisci ai puntatori a funzione, NO, non è possibile in maniera
semplice.
Visual Basic mette a disposizione l'operatore AddressOf che restituisce
l'indirizzo di una funzione, ma il valore restituito non lo si può
memorizzare in una variabile, lo si può soltanto passare come argomento di
una funzione di libreria.
Per ovviare a questo, cioè per utilizzare i puntatori a funzione, così come
fanno altro linguaggi, o come faceva il buon vecchio Clipper con i
CodeBlock, dovresti leggere l'articolo di Visual Basic Journal di questo
mese. Io l'ho fatto ieri sera e l'ho trovato stupendo e molto interessante,
è però di un livello decisamente avanzato.
--
    Giuseppe Saffioti
-------------------------------------
pino.s...@tiscalinet.it
pino.s...@asl1.to.it

End Function
in VB non mi risulta proprio.
prova in Lisp, lě lo puoi fare eccome!
tutto un altro modo di vedere le cose...
Ciao
Faber

VB6 Only...
Option Explicit
Private Sub Command1_Click()
Dim sName As String
sName = "Due"
CallByName Me, sName, VbMethod
End Sub
Public Sub Uno()
MsgBox "Uno"
End Sub
Public Sub Due()
MsgBox "Due"
End Sub
Ciao
GL

Ho vb5. Quello che hai detto di vb6 e' per me motivo sufficiente per
passare a vb6 (cosa che volevo evitare come la peste).
Ti spiacerebbe copiarmi e inviarmi per mail l'help-on-line di vb5
relativo alla "CallByName" che hai citato, in modo che possa valuare
bene se mi serve veramente ?
Grazie mille.
gs


 bene se mi serve veramente ?
Immagino che sia un semplice refuso: in VB5 non è ovviamente disponibile la
funzione CallByName.
Quanto all'help non c'è molto da dire: puoi chiamare in questo modo
qualsiasi metodo pubblico di qualsiasi oggetto (in VB: un controllo, una
form o una classe, NON una funzione di un modulo BAS).
----------------------------------------------------------------------
Stefano Minardi
Zetesis: 
zet...@mclink.it
----------------------------------------------------------------------

bene se mi serve veramente ?
Funzione CallByName
Esegue un metodo di un oggetto oppure imposta o restituisce una proprietà di
unoggetto.
Sintassi
CallByName(oggetto, nomeroutine, tipochiamata,[argomenti()])
La sintassi della funzione CallByName è composta dalle seguenti parti:
Parte Descrizione
oggetto Obbligatoria. Variant (Object). Nome dell'oggetto sul quale verrà
eseguita la funzione.
nomeroutine Obbligatoria. Variant (String). Espressione stringa contenente
il nome di una proprietà o di un metodo dell'oggetto.
tipochiamata Obbligatoria. Constant. Costante di tipo vbCallType che
rappresenta il tipo di routine da richiamare .
argomenti() Facoltativa. Variant (Array).
Osservazioni
La funzione CallByName consente di ottenere o impostare una proprietà oppure
di richiamare un metodo in fase di esecuzione utilizzando un nome di
stringa.
Nell'esempio seguente, nella prima riga la funzione CallByName viene
utilizzata per impostare la proprietà MousePointer di una casella di testo,
nella seconda riga si ottiene il valore della proprietà MousePointer e nella
terza riga il metodo Move viene richiamato per spostare la casella di testo
:
CallByName Text1, "MousePointer", vbLet, vbCrosshair
Result = CallByName (Text1, "MousePointer", vbGet)
CallByName Text1, "Move", vbMethod, 100, 100
Ciao
Faber

 funzione CallByName.
Era un refuso. Grazie mille.
gs

Grazie mille.
gs

...