Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto istruzione select...

Humm, che ho sbagliato questa volta?? In un mio sorgente ho scritto:
        Select Case Option3
            Case Option3(0)
                LblStato.Caption = "pippo"
            Case Option3(1)
                LblStato.Caption = "pluto"
            Case Option3(2)
                LblStato.Caption = "paperino"
        End Select
Allora; ho un form con tre pulsanti di opzione, io voglio che in base
a quele spingo mi appaia una scritta. Perň evidentemente mi sono perso
qualcosa perchč...quando vado a provarlo mi dice:
Argomento non facoltativo e mi evidenzia Option3. Ma cosě non gli va
bene?

 bene?
evidentemente, leggendo il frammento di codice da te postato, Option3 č il
nome di un array di controlli, per cui č obbligatorio far seguire al nome
del controllo il numero dell'elemento in questione;
ciao

default per gli option button... controllare please)
Si non ti preoccupare, questo lo vedo io...grazie mille!!

 ha scritto nel messaggio
news:39ba386...@news.libero.it...


> SKUNK:

    Select Case True
    Case Option3(0).Value
        '...
    Case Option3(1).Value
        '...
    Case Option3(2).Value
        '...
    End Select
--
Ciao.
Maurizio
--------
?SPQR(C)
 X

 nuova sa quel che lascia ma non sa quel che trova :)))
nel tuo caso il costrutto Select / Case non andava bene perchè nella tua
situazione non dovevi valutare i possibili valori di una variabile o
espressione, ma dovevi valutare il risultato di diverse espressioni;
ciao

     End Select
ok, lungi da me il desiderio di alimentare polemiche, tutto funziona
correttamente, ma prova a giocare con il semplice programmino qui sotto
Option Explicit
Private Sub Form_Load()
    Select Case True
        Case Funzione1()
            Debug.Print "Risultato Funzione1"
        Case Funzione2()
            Debug.Print "Risultato Funzione2"
        Case Funzione3()
            Debug.Print "Risultato Funzione3"
    End Select
End Sub
Private Function Funzione1() As Boolean
    Debug.Print "Funzione1"
    Funzione1 = False
End Function
Private Function Funzione2() As Boolean
    Debug.Print "Funzione2"
    Funzione2 = True
End Function
Private Function Funzione3() As Boolean
    Debug.Print "Funzione3"
    Funzione3 = True
End Function
e prova a cambiare i valori di ritorno delle varie Funzione1, Funzione2 e
Funzione3;
non ci sono poi così tanti vantaggi ad usare una "Select" in tutti quei casi
in cui non ho delle vere costanti per ogni "Case", no?
prova anche a far tornare True a più di una funzione... non mi sembra un
caso di ferrea logica di programmazione, o no?
ciao

 prova anche a far tornare True a piů di una funzione... non
mi sembra un caso di ferrea logica di programmazione, o no?
Gia`. Ma... scusa, chi e` che usa quel modo che porti ad
esempio? Pero`... pero`... Dato che i tuoi esempi trovano
    il *primo* caso "True" fra piu` casi
se, nella ferrea logica di un certo programma, fosse proprio
quello il compito da svolgere?...


 quello il compito da svolgere?...
a rigor di logica la Select/Case è un enunciato che dovrebbe suonare più o
meno come "se x vale 1 allora fai questo, se vale 2 allora fai quest'altro,
se vale 3 fai quest'altra cosa ancora";
a livello semantico suona un po' male un enunciato del tipo "se 1 è uguale a
x allora fai questo, se invece è uguale a y fai quest'altro e se invece è
uguale a z fai quest'altra cosa ancora" dal momento che essendo x,y e z 3
variabili, è possibile che x possa essere uguale a y o a z o ad entrambi; in
tal caso la logica del programma non è estremamente rigorosa, non ti sembra?
quindi in definitiva (secondo la mia personalissima opinione) ritengo più
pulito usare una serie di If in situazioni come queste;
il programmino che ti ho postato serviva solo da spunto per studiare il
comportamento di VB in situazioni simili: in effetti, come hai potuto
constatare, il comportamento è quello di valutare sequenzialmente le
espressioni elencate in corrispondenza dei vari Case, fermandosi appena se
ne trova una confacente;
comunque mi rendo pienamente conto che discutere di questo è un po come
discutere se sia meglio usare un Tab a 2, a 4 oppure a 8 spazi :))
ciao

 comunque mi rendo pienamente conto che discutere di questo è
un po come discutere se sia meglio usare un Tab a 2, a 4
oppure a 8 spazi :))
Io sono disponibile anche per quello :)) DUE spazi,
ovviamente. Fino a 15 pollici 800x600 ;))
