Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Interrompere un ciclo

  1. #1
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303

    Interrompere un ciclo

    allora con questo code faccio scorrere tutte le immagini presenti, come posso interrompere il ciclo al click dell' Image1.Picture, per poi riprenderlo?

    codice:
    Private Sub XPButton3_Click()
    For i = 0 To File1.ListCount
    DoEvents
    Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
    File1.ListIndex = File1.ListIndex + 1
    Next
    Close
    End Sub

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    156
    Aggiungi una variabile esempio dim imgsel as boolean
    sotto l'evento click dell'image inserisci
    imgsel=true

    Private Sub XPButton3_Click()
    For i = 0 To File1.ListCount
    DoEvents
    Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
    File1.ListIndex = File1.ListIndex + 1

    exit for
    imgsel=true
    if MsgBox("Interrompere la misura ?", 20, "xxxx")=vbyes
    then exit sub
    end if


    Next
    Close
    End Sub


    prova.Lo scritto cosi' senza provarlo

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    ma non funziona...
    puoi spiegare meglio

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    156
    praticamente,se ho capito bene,attraverso un bottone inizi un ciclo che carica le immagini in una picture box.Quando clicchi sulla picture vorresti interrompere il ciclo .
    La sintassi da usare e' questa:

    For contatore = inizio To fine [Step incremento]
    [istruzioni]
    [Exit For]
    [istruzioni]

    Next [contatore]

    Praticamente ti serve una variabile per dire al ciclo di for quando hai premuto sulla picture box.
    Dichiara una variabile Global imgsel as boolean.Se true vuol dire che hai premuto sulla picture
    Percio sull'evento click della picture scriverai:imgsel=true


    il codice diventa:
    Private Sub XPButton3_Click()
    For i = 0 To File1.ListCount
    DoEvents
    Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
    File1.ListIndex = File1.ListIndex + 1
    exit for
    imgsel=true


    Next
    Close
    End Sub


  5. #5
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da multijet
    praticamente,se ho capito bene,attraverso un bottone inizi un ciclo che carica le immagini in una picture box.Quando clicchi sulla picture vorresti interrompere il ciclo .
    La sintassi da usare e' questa:

    For contatore = inizio To fine [Step incremento]
    [istruzioni]
    [Exit For]
    [istruzioni]

    Next [contatore]

    Praticamente ti serve una variabile per dire al ciclo di for quando hai premuto sulla picture box.
    Dichiara una variabile Global imgsel as boolean.Se true vuol dire che hai premuto sulla picture
    Percio sull'evento click della picture scriverai:imgsel=true


    il codice diventa:
    Private Sub XPButton3_Click()
    For i = 0 To File1.ListCount
    DoEvents
    Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
    File1.ListIndex = File1.ListIndex + 1
    exit for
    imgsel=true


    Next
    Close
    End Sub

    ma a me in questo modo il ciclo non parte.
    ho fatto così:

    codice:
    Private Sub Image1_Click()
    Dim imgsel As Boolean
    imgsel = True 'ma imgsel a cosa deve essere uguale ? 
    End Sub
    Private Sub XPButton3_Click()
    
    For i = 0 To File1.ListCount
    DoEvents
    Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
    File1.ListIndex = File1.ListIndex + 1
     Exit For
    imgsel = True
     Next
    Close
    
    End Sub

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2006
    Messaggi
    156
    Manca la i alla fine:
    next i

    Alla load della form la variabile imgsel=false

  7. #7
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    bo a me non va a te si.

  8. #8
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    l'unico modo per interrompere il ciclo è in questo modo:

    codice:
    Private Sub Image1_Click()
    Dim imgsel As Boolean
    imgsel = True 'ma imgsel a cosa deve essere uguale ? 
    End Sub
    Private Sub XPButton3_Click()
    
    For i = 0 To File1.ListCount
    DoEvents
    Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
    File1.ListIndex = File1.ListIndex + 1
       if  imgsel = True Then Exit For 
     Next
    Close
    
    End Sub
    però mi è impossibile farlo ripartire

  9. #9
    Utente di HTML.it L'avatar di Jupy64
    Registrato dal
    Sep 2004
    Messaggi
    1,151
    Originariamente inviato da multijet
    Manca la i alla fine:
    next i
    Ciao, è ininfluente.. anzi, ti dirò, sembra che se non metti il riferimento al contatore, dopo la next, sia anche meglio..in termini di ottimizzazione..anche se si perde in leggibilità del codice.

    L'ultima soluzione che hai adottato, x69asterix, va quasi bene..
    codice:
    'dichiarazioni a livello generale
    Dim imgSel As Boolean
    Dim startIndex as long
    
    'nell'evento del form_load:
    imgSel=false
    startIndex=0
    
    'nell'evento click dell'immagine:
    imgSel=true
    
    'nell'evento click del button:
    Private Sub XPButton3_Click()
       imgSel=false
       For i = startIndex To File1.ListCount
          DoEvents
          Image1.Picture = LoadPicture(File1.Path & "\" & File1.List(i))
          File1.ListIndex = File1.ListIndex + 1
          if  imgsel = True Then 
             startIndex=i
             Exit For
          end if 
       Next
    End Sub
    Jupy

  10. #10
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    ciao,
    così sembra funzionare bene, anche se al click dell'immagine non si ferma su di essa ma alla successiva.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.