Newsgroup: it.comp.lang.visual-basic
Titolo: Eval

Intanto ciao a tutti.
Ho un problemino con "eval"...
questa e` la mia prava funzioncina:
Const NVociNelMainMenu = 6
Private Sub MainMenu(mode As Boolean)
Dim i As Integer
    For i = 1 To NVociNelMainMenu
        Eval ("CmdMain" & i & ".Visible = mode")
    Next
End Sub
Il risultato atteso e` che mi nasconda i tasti di  un menu...  invece mi
genera un errore: "Impossibile trovare il nome CmdMain1 specificato
nell'espressione"
ovviamente se mi scrivo le righe manualmente:
'    CmdMain1.Visible = mode
'    CmdMain2.Visible = mode
'    CmdMain3.Visible = mode
'    CmdMain4.Visible = mode
'    CmdMain5.Visible = mode
'    CmdMain6.Visible = mode
tutto e` regolare... Sigh! Cosa mi sfugge?
Scusate la rottura... e grazie in anticipo a chi vorra` aiutarmi.
Ciao a tutti
                                                    Gigi

 Il risultato atteso e` che mi nasconda i tasti di  un menu...  invece mi
Mode è una variabile come "i" quindi la devi portare fuori dalle virgolette
...
prova a vedere se è questo ....
Ciao

 ha scritto nel messaggio
news:IBee6.49071$Up.4...@twister1.tin.it...


 ha scritto nel messaggio
news:95btod$bnn$1...@fe1.cs.interbusiness.it...


 ha scritto nel messaggio
news:0lfe6.50902$Up.5...@twister1.tin.it...


 ha scritto nel messaggio
news:95c1ln$ptl$1...@news.mclink.it...


 ha scritto nel messaggio
news:pcge6.50998$Up.5...@twister1.tin.it...


 ha scritto nel messaggio
news:95c3kq$qd3$1...@news.mclink.it...


 ha scritto nel messaggio
news:95c3kq$qd3$1...@news.mclink.it...


 Ma l'unico effetto e` che non genera errori... tira dritto e non fa un
ka..
Option Explicit
Sub Main( _
)
  Dim mode As Boolean
  mode = True
  ' Errato
  '
  Debug.Print "" & mode
  ' Corretto
  '
  Debug.Print "" & Str(mode)
  ' Alternative accettabili
  '
  Debug.Print "" & (0 + mode)
  Debug.Print "" & CInt(mode)
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

 ha scritto nel messaggio
news:95esb9$gqopo$1...@ID-52090.news.dfncis.de...


 Sorry...                           ...no.
"No" che cosa? Possibile nessuna delle tre? Riguardando la riga Eval<ecc.>
qui sopra mi sembra che, oltre alle forme che ho definito accettabili,
dovrebbe andare bene anche:
    Format$(mode,"General Number")
-oppure-
    Format$(mode,"0")


 ha scritto nel messaggio
news:95m9g9$hn7l0$2...@ID-52090.news.dfncis.de...


 :-))))


 Wow!     ;)     Me ne suggeriresti uno? Sono ancorato...
Volentieri, se posso. Magari, pero`, potresti rinfrescarci la memoria
riguardo cio` che effettivamente vuoi ottenere. Il tempo passa e non so piu`
bene di cosa si stia parlando.


bene di cosa si stia parlando.
Ne approfitto per far pesare il fatto che non uso piu' oe come newsreader :)
Se ho ben inteso, il quesito iniziale era:
------ begin quote -----
Ho un problemino con "eval"...
questa e` la mia prava funzioncina:
Const NVociNelMainMenu = 6
Private Sub MainMenu(mode As Boolean)
Dim i As Integer
    For i = 1 To NVociNelMainMenu
        Eval ("CmdMain" & i & ".Visible = mode")
    Next
End Sub
Il risultato atteso e` che mi nasconda i tasti di  un menu...  invece mi
genera un errore: "Impossibile trovare il nome CmdMain1 specificato
nell'espressione"
------ end quote -----
Mi stavo quindi chiedendo:
invece di usare una tecnica tipo javascript con la funzione Eval come
nel quesito, non si potrebbe scrivere il loop cosi' :
Const NVociNelMainMenu = 6
Private Sub MainMenu(mode As Boolean)
Dim i As Long
    For i = 1 To NVociNelMainMenu
       Me("CmdMain" & i).Visible = mode 
    Next i
End Sub
Non l' ho provato, ma in access 2 questo sistema funzionava.
Ciao
Aldo

 Non l' ho provato, ma in access 2 questo sistema funzionava.
Concordo in pieno. Anche con le variazioni sul tema.


arrivare l'amico con le sue gambe e i nostri eventuali spintoni. 
Stavolta mi hai proprio fregato. Il mio arretrato di messaggi (credo superiore
al tuo) non mi ha fatto capire le risposte che erano fra le righe.
Sorry ;-) sara' per un' altra volta !
Ciao
Aldo