Newsgroup: it.comp.lang.visual-basic
Titolo: Chiamare una funzione col nome

Ciao a tutti!
Ho un piccolo problemino da risolvere.
Ho bisogno di chiamare una funzione col suo nome....???
Cioč...
call "formatTable"
Dove formatTable č una mia funzione ...
Esiste un modo per chiamare appunto una funzione dal nome e non dal suo
puntatore????
Vi ringrazio in anticipo
Mik

 puntatore????
Non credo di aver capito bene quale sia il tuo problema.....
ma per richiamare una funzione si usa proprio il nome!
mmmm.......


 ma per richiamare una funzione si usa proprio il nome!
No, lui intende una cosa tipo mettere il nome della  funzione in
un campo di imput, come una listbox per esempio, e quando si fa
doppio click sull'elemento corrispondente al nome viene chiamata la
funzione.
Andrea

 ma per richiamare una funzione si usa proprio il nome!
Io avrei bisogno di chiamare una funzione con una stringa
di solito si fa
    sub pippo()
    .....
    ....
    end sub
    call pippo
Io invece ho bisogno di fare
    call "pippo"
Cioè chiamare la funzione che ha come nome "pippo"
Mi sono spiegato???

 Mi sono spiegato???
CallByName (mai provata):
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/
vafctCallByNameFunction.asp

 ha scritto nel messaggio
news:b2tenv$1fvev5$1...@ID-165476.news.dfncis.de...

aahhhhhh.....ora ho capito!
Beh, per quanto ne so io non credo si possa fare, mi dispiace
Ti saluto ma se trovi il modo facci sapere!

CallByName(nome) senza dubbio alcuno
ciao
Lorenzo

 vafctCallByNameFunction.asp
Ho provato ma ha un altro utilizzo.....
Si usa per chiamare un metodo o una proprietà di un oggetto!
Esempio...
CallByName (Text1,"MousePointer",vbget)
Per settare la proprietà mousepointer di text1 che è una text !!!
Cè bisogno di un oggetto!!!
Deve esserci qualcosa di simile...

 Deve esserci qualcosa di simile...
in ogni caso non sarebbe un problema visto che potresti
incapsulare le funzioni da chiamare in una classe , con metodi, e proprietą!
ciao
lorenzo

 per richiamare i metodi di un oggetto
Incapsula la funzione in una classe
cioč crea una classe nuova e pasta il codice della tua funzione
ed usa callbyname per chiamarne il metodo ProvaMSG
cosě avrai tutte le funzioni da chiamare in un'unica classe
ciao
Lorenzo


Ok....
Grazie per l'idea!
Provo a farlo!
Ciao e grazie ancora
Mik

 call "formatTable"
Se sono funzioni senza parametri puoi usare Select Case.
...
Call SelectFunction("formatTable")
...
Function SelectFunction(sf as string)
   Select Case sf
      Case "formatTable"
         Call formatTable()
      Case "altraFunzione"
         Call altraFunzione()
      ' ...............
   End Select
End Function
Se ci sono parametri la cosa si complica ma non č impossibile.
Ciao.
pinco_pallo
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Mik ha scritto:

Io ho provato così:
dim nome_funzione As String
nome_funzione="pippo"
parametro_atteso_dalla_funzione=12345
risultato=CallByName(Me,nome_funzione,1,parametro_atteso_dalla_funzione)
E funziona. Per il CallType (e relativi valori), apri il Visualizzatore
Oggetti (F2) e cerca CallType

 ha scritto nel messaggio
news:b2tko5$1gie0b$1...@ID-174464.news.dfncis.de...


Forse arrivo tardi.
io callbyname l'ho usata e va benissimo
guarda l'esempio
CallByName MDIForm1, Trim(RM1!voce_chiamata) & "_Click", VbMethod
dove mdiform1 è l'oggetto che contiene la funzione
Trim(RM1!voce_chiamata) è il nome
Attenzione la funzione chiamata deve essere PUBLIC
Ciao Gab

 Se la funzione è definita in un modulo come fai???
Non ne ho idea, ma se pubblica dovrebbe trovarla lo stesso.
Come ripeto, non l'ho mai usata e l'ho provata solo oggi...