Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    30

    [VB.NET] Riproduzione Foto da cartella

    Salve a tutti,
    premetto che sono un novellino con Visual Basic e chiedo perdono per tutto quello che dirò....
    Dovrei automatizzare una slide in una form con la riproduzione delle foto contenute in una specifica cartella. Ho cercato per mare e monti ma non trovo nulla. Mi date uno spunto o un idea al merito? Grazie anticipatamente.

    .:Lion:.

  2. #2
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Ti dò un consiglio: nella tua form metti una PictureBox e con un ciclo For Each...Next scorri tutti i file presenti nella tua cartella. Ogni immagine trovata la metti in successione come proprietà .Image della PictureBox.

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    30
    Grazie per il consiglio però sono davvero una frana e sto cominciando da poco. Ho creato una PictureBox. Presumendo che la mia cartella con le immagini si trova in "c:\Immagini" come compongo il mio codice?

    codice:
    Public Class Form1
        
        For Each
        
        Next
       
    End Class
    Grazie e scusa.

    .:Lion:.

  4. #4
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Di solito non dò il codice già fatto, ma in questo caso...

    codice:
            For Each f As String In IO.Directory.GetDirectories("C:\Immagini")
                If IO.Path.GetExtension(f) = "jpg" Then
                    PictureBox1.Image = Image.FromFile(f)
                    Threading.Thread.Sleep(10000)
                End If
            Next
    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    30
    Grazie mille e chiedo perdono per la mia ignoranza.... Ho fatto tutto come hai postato tu ma all'avvio del programma non succede nulla. Ovvero si avvia e si vede la form ma non c'è lo slide delle immagini. Ti quoto il codice per intero. Ti chiedo questa ultima cortesia poi prometto che non dò fastidio più
    codice:
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            For Each f As String In IO.Directory.GetDirectories("C:\Immagini")
                If IO.Path.GetExtension(f) = "jpg" Then
                    PictureBox1.Image = Image.FromFile(f)
                    Threading.Thread.Sleep(10000)
                End If
            Next
        End Sub
    End Class
    Mi dici dove sbaglio? PS ho creato la cartella e messo le immagini all'interno
    .:Lion:.

  6. #6
    Utente di HTML.it L'avatar di ShaleN
    Registrato dal
    Aug 2010
    Messaggi
    517
    Ti chiedo questa ultima cortesia poi prometto che non dò fastidio più
    Stai tranquillo, non ti mangio mica

    Ecco qua:
    codice:
      Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            For Each f As String In IO.Directory.GetFiles("C:\Matteo\Foto\Costellazioni")
                If IO.Path.GetExtension(f) = ".jpg" Then
                    PictureBox1.Image = Image.FromFile(f)
                    Me.Refresh() 'Obbliga il ridisegno del Form.
                    Application.DoEvents() 'Evita l'effetto *bloccato* della Form (prova a toglierlo e vide che succede)
                    Threading.Thread.Sleep(10000)
                End If
            Next
      End Sub
    Avevo messo IO.Directory.GetDirectories() al posto di IO.Directory.GetFiles()

    Le vie del Signore sono infinite. È la segnaletica che lascia a desiderare.
    La luce viaggia più veloce del suono. Per questo alcune persone sembrano brillanti finchè non parlano.
    Occhio per occhio uguale... occhio al quadrato

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    30
    Grazie mille ancora l'aiuto!!! Ho provato ma rimane sempre bloccata l'immagine su un'unica foto. Come mai? Colpa dell'evento in cui è contenuto il codice?

    Help me!

    .:Lion:.

  8. #8
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Originariamente inviato da lionumtp
    Grazie mille ancora l'aiuto!!! Ho provato ma rimane sempre bloccata l'immagine su un'unica foto. Come mai? Colpa dell'evento in cui è contenuto il codice?
    .:Lion:.
    Sposta il codice nell'evento Click di un Button...


  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    30
    Come mai la form rimane bloccata fino all'immagine successiva per poi ribloccarsi? Per spiegarmi meglio se sposto il mouse sulla X il colore rosso non si evidenzia fino a che non termina il ciclo all'immagine successiva..... questo mi rende impossibile eseguire altri comandi in quella form, qualsiasi esso sia.... Come mai?

    PS non so se può essere utile ma ho notato che anche se chiudo la form il debug continua ad essere fino a che non lo blocco con la combinazione MAIUSC+F5....
    Ho inoltre usato Do....Loop per ripetere il ciclo ma pure se lo tolgo il problema rimane.

    .:Lion:.

  10. #10
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Tutto normale, usando quel codice.

    E' ovvio che devi 'temporizzare' la visualizzazione delle slide, altrimenti il ciclo For Each viene eseguito ininterrottamente dall'inizio alla fine.

    Ti consiglio di usare un Timer impostando l'intervallo sul tempo che desideri mantenere visualizzata ogni immagine.
    Ad ogni evento Tick del timer cambi l'immagine da visualizzare.


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.