Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  1. #1

    [vb2010] Return che non ritorna?

    Ho una Function ... as Boolean in cui elaboro una immagine, con alcuni counter di controllo, per non rileggere l' immagine più volte in caso di errori.

    Il codice interessato dalla domanda:

    codice:
              Debug.Print("Counter: " & Counter & " -N: " & N)            
              If Counter = 0 Then
                  If N < 2 Then
                      Debug.Print("Rileggo la immagine: è vuota.......................")
                      Application.DoEvents()
                      Sleep(500)
                      Cattura(2)
                  Else
                      Debug.Print("Immagine è sempre vuota.........Return False")
                      Return False
                      Debug.Print("Return??????????")
                 End If
              End If
    
              Debug.Print("Continuo dopo l' If......")

    Il risultato dei Debug di controllo:

    codice:
    Counter: 0 -N: 0
    Rileggo la immagine: è vuota.......................
    Counter: 0 -N: 2
    Immagine è sempre vuota.........Return False
    Continuo dopo l' If......

    In poche parole dopo aver passato il codice: "Return False" il codice non esce dalla Function, ma solo dall' If... Then e continua tranquillamente ad elaborare una immagine che non dovrebbe elaborare in quanto con il Return False dovrebbe uscire dalla Function....
    Ultima modifica di eziogsv; 23-08-2015 a 19:56

  2. #2
    Ok, ho riscritto completamente il codice... sorry per il messaggio obsoleto.
    Ultima modifica di eziogsv; 24-08-2015 a 01:38

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    Ok, ho riscritto completamente il codice... sorry per il messaggio obsoleto.

    Ma parliamo di una funzione ricorsiva? Questa è la funzione Cattura che chiama sé stessa?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Cattura è una Sub in cui "catturo" una certa immagine. Una volta catturata la immagine la "elaboro" con un Call alla Function "ElaboraImmagine" as Boolean (nella quale si trova il codice sopra riportato), nella quale Function il Counter resta a zero se non trovo determinati colori che invece "dovrebbero" esserci, per cui "ricatturo" una seconda volta per ovviare ad eventuale errore.

    Quindi "Cattura" è una Sub che chiama "ElaboraImmagine" che è una Function che richiama "Cattura" (una sola volta) se l' immagine non contiene ciò che "dovrebbe" contenere.

    Due Sub diverse... ma fondamentalmente una funzione ricorsiva.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Quote Originariamente inviata da eziogsv Visualizza il messaggio
    ... fondamentalmente una funzione ricorsiva.
    Ecco ... e da questo nasce la questione del Return ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.