Newsgroup: it.comp.lang.visual-basic
Titolo: Aiuto...END IF SENZA BLOCCO IF...ossia?? :))

Salve, 
sono tornato a chiedere :)) Dopo aver letto il libretto Apogeo, ne ho
preso un altro..e qualcosa comincio a capirci adesso...alla fine credo
che anche la lettura precedente non sia stata poi cpsģ inutile, almeno
avevo gią dimestichezza con l' interfaccia del Visual...
Ok, veniamo al porblema. Ho cominciato a scrivere questo semplicissimo
giochino?!? :)) e gią i primi problemi :)) Questo č quanto ho scritto
dopo aver creato lo interfaccia grafica compsta di 2 bottoni, uno che
avvia il gioco e uno che esce e tre label dove compaiono i numeri. E'
una slot machines, se esce sette appare un immagine e fa il BEEP :))
Private Sub Command1_Click()
    Image1.Visible = False            'nasconde l' immagine all' avvio
    Label1.Caption = Int(Rnd * 10)  'calcola i numeri
    Label2.Caption = Int(Rnd * 10)
    Label3.Caption = Int(Rnd * 10)
                                'se appare 7 visualizza monete e suona
    If (Label1.Caption = 7) Or (Label2.Caption = 7) Or         
       (Label3.Caption = 7)  _
    Then Image1.Visible = True
             Beep
    End If
End Sub
------------------------------------------------------------------------------------------------------------------------
Private Sub Command2_Click()
    End
End Sub
------------------------------------------------------------------------------------------------------------------------
Private Sub Form_Load()
    Randomize
End Sub
Dopo aver spinto il tasto AVVIA se spingo FERMA la finestrella si
chiude e tutto bene. Se invece spingo AVVIA, per far apparire i
numeri, mi appare un messaggio di errore di compilazione che mi dice 
"END IF SENZA BLOCCO IF"  e poi mi evidenzia di giallo, con una
freccetta vicino, la prima riga (...Command1_ .....)
Ma che vuol dire end if senza blocco if??? 
Fatemi sapere...grazie :))

 giochino?!? :)) e già i primi problemi :)) Questo è quanto ho scritto


 Fatemi sapere...grazie :))
Non vorrei dire una bestiata, ma se scrivi il blocco IF ... THEN ,,,  tutto
su una riga, non serve l'ENDIF. Quindi trovandolo, lo considera come
solitario.
Prova a spezzare il blocco IF dopo il THEN.
--
 
federic...@planet.it
Eliminare NOSPAM dall'indirizzo! Delete NOSPAM from address!

 Fatemi sapere...grazie :))
Non so se l'azzecco non mi č mai capitata un cosa del genere.
Prova a togliere le parentesi dopo l'IF a tutte le label. Spero di esserti
stato d'aiuto.

 End Sub
o (una sola istruzione nell'if)
If (Label1= 7) Or (Label2= 7) Or (Label3= 7)  then _
    Image1.Visible = True
o (piu'di una):
If (Label1 = 7) Or (Label2 = 7) Or (Label3 = 7)  then
    Image1.Visible = True
    Beep
End If
ciao, a.

L'END IF va messo  solo se devi eseguire piů di una istruzione dentro al
blocco di IF. Esempio:
    IF A=TRUE THEN LABEL1.CAPTION="CIAO"
Come vedi qui END IF non serve perchč in caso A sia vero va eseguito solo
LABEL1.CAPTION="CIAO". Se invecie hai
    IF A=TRUE THEN
        LABEL1.CAPTION="CIAO"
        A=FALSE
    END IF
il "comando" END IF indica a VB dove finisce il blocco di istruzioni che
vanno eseguite se la condizione di IF č vera.
La domanda che devi farti č: "Come fa VB a sapere, quando c'č un IF, se deve
aspettarsi un END IF o no?" semplice! Se dopo THEN vai a capo allora ci va
l'END IF (prima o poi), se invecia dopo THEN scrivi subito di seguito lui la
interpreta come l'unica istruzione da eseguire.
Nel tuo caso modifica il codice cosě:
    If (Label1.Caption = 7) Or (Label2.Caption = 7) Or (Label3.Caption = 7)
Then
        Image1.Visible = True
        Beep
    End If
Spero di essere stato chiaro!

     End If


Il tuo codice e' il seguente:
    If (Label1.Caption = 7) Or (Label2.Caption = 7) Or
       (Label3.Caption = 7)  _
    Then Image1.Visible = True
             Beep
    End If
Fai attenzione: dopo l'ultima OR hai aggiunto un trattino "_" e hai
continuato con il THEN. In questo caso non hai bisogno di mettere un ENDIF
perche' il trattino indica che l'IF prosegue e si conclude con il THEN.
La sintassi corretta e':
    If (Label1.Caption = 7) Or (Label2.Caption = 7) Or  (Label3.Caption = 7)
Then
        Image1.Visible = True
        Beep
    End If
 Quindi devi solo eliminare il trattino.
Ciao, Matteo