IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

"auto" Slideshow introuvable [Débutant]


Sujet :

VB.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut "auto" Slideshow introuvable
    Bonjour,

    Je me suis décidé de poster sur un forum parceque j'en peu plus.
    Tous les liens de 4 premières pages qui aparaissent sur google avec les mots clé que je désire sont visitées.

    Je me suis mis ce matin à programmer (Sans aucune conaissance avec Visual Basic 2008) et jusque là, j'ai trouvé tout ce dont j'avais besoin. SOF ... le moyen de faire un slideshow.

    Je me suis fait les videos de youtube parce que si les codes ne me sont pas détaillés je ne comprendrais pas. Et tout ça pour trouver de soit disant "slideshow" qui ont tous besoin d'un bouton pour tourner.

    J'ai fait du HTML et PHP et jamais eu de problèmes a insérer sur mes sites web un rectangle destiné a faire tourner des images sans que l'utilisateur n'ai rien a faire, et c'est ce que je voudrais faire pour mon programme.

    -5 secondes d'intervalle entre toutes les photos (avec le timer je sais que c'est possible)
    -11 images ne dépassant pas plus de 150kb chacune à faire défiler

    et ce que je voudrais c'est que à l'ouverture du programme, sans que personne ne clique sur quoi que ce soit, mes images défilent sur mon form1.

    Est-ce que c'est long a programmer.
    Comme je vous ai dit, j'ai commencé tout juste ce matin et je tiens a finir ce programme avant ce soir. Serait il possible que quelqu'un puisse me filer un énoooorme coup de main... je désespère. c'est faisable mais pas savoir le faire ça me perturbe.

    Grand merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    j'en ai fait un dernièrement en c# pour mon site tu en cherche un pour une appli ou pour un site? le code devrait être un peu près le même

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut pour une appli
    En fait c'est pour le programme que je suis en trein de créer. Je sais pas si a la fin j'obtiens un .exe ou pas mais voilà. C'est mon but.

    Donc ce serai pour un programme et non pas un site web =)

  4. #4
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut et avec un timer ?
    J'ai pensé à le faire avec des timers...
    ne serait-il pas possible de lancer un timer qui compte 5000ms au lancement du programme dans le "Private Sub Form_Load()".

    Ce serai placer mes 11 images les 1 sur les autres et quand le timer ateint les 5 secondes, la pictureBox11 passe en "hide()" et au 5 secondes suivantes, la PictureBox10 pas en "hide()" et ainsi de suite jusquà la 1 et retour à 0 ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    oui c'est avec un timer tu le règle a 5000ms dans les propriété et à l'évenément tick tu change le lien de l'image dans la picturebox
    moi pour ça j'ai crée une list de string qui contient les url de mes image et je récupère l’occurrence suivante a chaque tick quand j'arrive à la fin de ma liste je repars à 0

  6. #6
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut help.. ? ^^
    Voilà, j'ai réussi avec 2 timers a faire alterner 3 photos mais au bout de 15 minutes okus rien. Pourais tu m'indiquer :
    1 comment créer une liste string ?
    2 comment créer une picturebox ?
    3 quelle commande écris tu pour changer d'image de ta liste toutes les x secondes ?
    4 comment repartir à 0 ?

    en gros je crois que c'est le code que je te demande mais bon. Si tu as la possibilité de me le donner ce serai super, sinon je verrais ce que je fais.

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    dans ta boite a outil tu as juste a faire glisser les composants sur ta form et je crois qu'il y a un composant qui permet de contenir plusieurs images en windows form je pourrais pas t'aider plus ce soir

  8. #8
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut imageLIST
    J'ai trouvé imagelist, je suppose que c'est ça.
    Je vais chercher sur internet comment afficher les images contenu dedans et l'associer a un timer.

    Merci beaucoup pour l'éclaircissement. Si je n'y parvient pas je reposterais demain.

    Mercii =)

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    un petit exemple en c# il n'est pas parfait mais te permettra de voir comment fonctionne le schmilblick:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.IO;
     
    namespace SlideShow
    {
        public partial class Form1 : Form
        {
            private int compteur;
            private List<Image> listeImage;
     
            public Form1()
            {
                InitializeComponent();
     
                // on initialise notre liste d'image
                listeImage = new List<Image>();
     
                // on va récupérer toutes les fichiers du répertoire mes images
                FileInfo[] listeFichiers = new DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)).GetFiles();
                // on parcours la liste des fichiers
                foreach (var item in listeFichiers)
                {
                    // si le fichier est une image on l'ajoute à notre liste d'image
                    string extension = item.Extension;
                    if (extension == ".jpg" || extension == ".bmp")
                    {
                        try
                        {
                            Image image = new Bitmap(item.FullName);
                            listeImage.Add(image);
                        }
                        catch (Exception)
                        {
                            //todo code de gestion d'erreur
                        }
     
                    }
                }
     
     
                // on indique le mode d'affichage de l'image
                pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
                // on affiche déjà une première image
                ChangerImage();
     
            }
     
            private void timer1_Tick(object sender, EventArgs e)
            {
                // à chaque tick du timer on change d'image
                ChangerImage();
            }
     
            private void ChangerImage()
            {
                // on affiche pas d'image si notre liste d'image n'en contient pas
                if (listeImage.Count <= 0)
                    return;
     
                // on vérifie si on notre compteur n'est pas supérieur à notre nombre d'image
                if (compteur >= listeImage.Count)
                {
                    // si c'est le cas on le remet à 0
                    compteur = 0;
                }
                // on affiche l'image
                pictureBox1.Image = listeImage[compteur];
                // on incrémente le compteur pour l'affichage de la prochaine image
                compteur++;
            }
        }
    }
    et un convertisseur de code en vb http://converter.telerik.com/

  10. #10
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut re =)
    Bonjour à nouveau,

    Pour le dernier code, ce qui est bien c'est que j'ai partiellement compris les instructions mais à l'aplication ça bloque un peu.

    j'ai converti le code en VB et j'obtiens :

    4 erreures détéctées:

    1-Les instructions 'Namespace' ne peuvent intervenir qu'au niveau du fichier ou de l'espace de noms. C:\Documents and Settings\XP\Local Settings\Application Data\Temporary Projects\WindowsApplication1\Form1.vb

    2-Une référence a un membre non partagé requiert une référence d'objet. Correspond à => InitializeComponent()

    3-Type 'fileinfo' non défini. Correspond à => As FileInfo()

    4-Type 'var' non défini. Correspond à => As var

    5-Une référence a un membre non partagé requiert une référence d'objet. Correspond à => PictureBox1.SizeMode =

    6-Une référence a un membre non partagé requiert une référence d'objet. Correspond à => pictureBox1.Image =


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    Namespace SlideShow
    	Public Partial Class Form1
    		Inherits Form
    		Private compteur As Integer
    		Private listeImage As List(Of Image)
     
    		Public Sub New()
    			InitializeComponent()
     
    			' on initialise notre liste d'image
    			listeImage = New List(Of Image)()
     
    			' on va récupérer toutes les fichiers du répertoire mes images
    			Dim listeFichiers As FileInfo() = New DirectoryInfo(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures)).GetFiles()
    			' on parcours la liste des fichiers
    			For Each item As var In listeFichiers
    				' si le fichier est une image on l'ajoute à notre liste d'image
    				Dim extension As String = item.Extension
    				If extension = ".jpg" OrElse extension = ".bmp" Then
    					Try
    						Dim image As Image = New Bitmap(item.FullName)
    						listeImage.Add(image)
    							'todo code de gestion d'erreur
    					Catch generatedExceptionName As Exception
     
    					End Try
    				End If
    			Next
     
     
    			' on indique le mode d'affichage de l'image
    			pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    			' on affiche déjà une première image
     
    			ChangerImage()
    		End Sub
     
    		Private Sub timer1_Tick(sender As Object, e As EventArgs)
    			' à chaque tick du timer on change d'image
    			ChangerImage()
    		End Sub
     
    		Private Sub ChangerImage()
    			' on affiche pas d'image si notre liste d'image n'en contient pas
    			If listeImage.Count <= 0 Then
    				Return
    			End If
     
    			' on vérifie si on notre compteur n'est pas supérieur à notre nombre d'image
    			If compteur >= listeImage.Count Then
    				' si c'est le cas on le remet à 0
    				compteur = 0
    			End If
    			' on affiche l'image
    			pictureBox1.Image = listeImage(compteur)
    			' on incrémente le compteur pour l'affichage de la prochaine image
    			compteur += 1
    		End Sub
    	End Class
    End Namespace
    Mes images son dans "Resources" et elle sont en ".png" et ".jpg"
    Pour ce qui est de la taille des images, pas deboin de préciser quoi que ce soit, l'imagebox fait la taille exacte des images qui y vont aparaître.

    Je dois modifier quoi comment ?

    Merci pour ce petit bout de code =)

  11. #11
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut ça y est =D
    Bon, a force de les faire travailler ces neurones, j'ai trouvé la commande timer.start() et timer.stop() et donc j'ai procédé ainsi pour mon slideshow :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            PictureBox11.BringToFront()
            Timer1.Stop()
            Timer2.Start()
        End Sub
     
        Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
            PictureBox10.BringToFront()
            Timer2.Stop()
            Timer3.Start()
        End Sub
     
        Private Sub Timer3_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer3.Tick
            PictureBox13.BringToFront()
            Timer3.Stop()
            Timer4.Start()
        End Sub
     
        Private Sub Timer4_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer4.Tick
            PictureBox14.BringToFront()
            Timer4.Stop()
            Timer5.Start()
        End Sub
     
        Private Sub Timer5_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer5.Tick
            PictureBox15.BringToFront()
            Timer5.Stop()
            Timer6.Start()
        End Sub
     
        Private Sub Timer6_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer6.Tick
            PictureBox16.BringToFront()
            Timer6.Stop()
            Timer7.Start()
        End Sub
     
        Private Sub Timer7_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer7.Tick
            PictureBox17.BringToFront()
            Timer7.Stop()
            Timer8.Start()
        End Sub
     
        Private Sub Timer8_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer8.Tick
            PictureBox18.BringToFront()
            Timer8.Stop()
            Timer9.Start()
        End Sub
     
        Private Sub Timer9_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer9.Tick
            PictureBox19.BringToFront()
            Timer9.Stop()
            timer10.start()
        End Sub
     
        Private Sub Timer10_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer10.Tick
            PictureBox12.BringToFront()
            Timer10.Stop()
            Timer1.Start()
        End Sub
    sachant que la picturebox12 est au premier plan... ça me donne un beau diapo =D certe, beaucoup de timers mais j'y suis qd meme arrivé =D merci merci merci bcppp a tous ceux qui m'ont filé un coup de main ))
    a+

  12. #12
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    tu crée autant de timer et de picturebox que tu as d'image ce n'est vraiment pas optimisé, si tu as 100 images tu feras comment et ça coutera beaucoup plus en ressource

  13. #13
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut yep
    L'inconvénient avec l'imagelist et ce qui m'a fait me diriger vers autre chose c'est que les images sont redimensionées à 16x16. Lorsque je les agrandissait de nouveau, c'éstait maximum 256x256 et mes images faisait 464px-242px donc voilà. Si un jour j'ai besoin de faire une diapo avec plus d'images je chercherais à nouveau ^^

    Merci encore.

  14. #14
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    c'est pour ça que j'utilisais List<Image> et non le composant imagelist
    http://msdn.microsoft.com/fr-fr/libr....80%29.aspx#Y0

    je l'ai fait en vb (première fois de ma vie que j'en fais, pas génial quand on vient du c#)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Public Class Form1
        Private compteur As Integer
        Private listeImage As List(Of Image)
     
        Public Sub New()
            InitializeComponent()
     
            ' on initialise notre liste d'image
            listeImage = New List(Of Image)()
     
            ' on ajoute les images en ressource
            listeImage.Add(My.Resources.Diapo__1_)
            listeImage.Add(My.Resources.Diapo__10_)
            listeImage.Add(My.Resources.Diapo__2_)
     
     
            ' on affiche déjà une première image
            ChangerImage()
     
            'on lance le timer
            Timer1.Interval = 5000
            Timer1.Start()
        End Sub
     
     
        Private Sub ChangerImage()
            ' on affiche pas d'image si notre liste d'image n'en contient pas
            If listeImage.Count <= 0 Then
                Return
            End If
     
            ' on vérifie si on notre compteur n'est pas supérieur à notre nombre d'image
            If compteur >= listeImage.Count Then
                ' si c'est le cas on le remet à 0
                compteur = 0
            End If
            ' on affiche l'image
            PictureBox1.Image = listeImage(compteur)
            ' on incrémente le compteur pour l'affichage de la prochaine image
            compteur += 1
        End Sub
     
        Private Sub Timer1_Tick_1(sender As System.Object, e As System.EventArgs) Handles Timer1.Tick
            ' à chaque tick du timer on change d'image
            ChangerImage()
        End Sub
    End Class

  15. #15
    Futur Membre du Club
    Inscrit en
    Mars 2012
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2012
    Messages : 13
    Points : 6
    Points
    6
    Par défaut "auto" Slideshow introuvable
    Merci beaucoup pour ton code. je le sauvegarde !!!!!!!

  16. #16
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Choisir la Taile et la Forme du Texte
    Bonjour.
    Code pour VB6:
    Pour modifier le texte et le dessiner à volonté j'utilise une DLL Windows.
    Si ça peut aider à quelqu'un:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Declare Function CreateFont Lib "gdi32" Alias "CreateFontA" (ByVal Height As Long, _
    ByVal Width As Long, _
    ByVal Orientation As Long, _
    ByVal Escapement As Long, _
    ByVal fontwidth As Long, _
    ByVal Italic As Long, _
    ByVal Unerline As Long, _
    ByVal StrikeOut As Long, _
    ByVal CharSet As Long, _
    ByVal OutputPrecision As Long, _
    ByVal ClipPrecision As Long, _
    ByVal quality As Long, _
    ByVal PitchAndFamily As Long, _
    ByVal FontName As String) As Long
     
     
    Dans des ComboBox on peut choisir: Font, Height et Width
    Dans les CheckBox on peut aussi choisir les propriétés Bold, Italic, Underline et Strike
     
    'choix de la Fonte: ComboBox, Name cboFonts
    For i = 0 To Printer.FontCount - 1
    cboFonts.AddItem Printer.Fonts(i)
    Next i
     
    'choix de la taille Height et Width: ComboBox, Name cboHeight et cboWidth
    For i = 5 To 150
    cboHeight.AddItem i
    cboWidth.AddItem i
    Next i
    Dans mon PictureBox je dessine toute la Palette des caractères qui me fourni l'imprimante choisie et j'ajuste la taille et la largeur à volonté.
    Je peux déplacer les caractères avec la Souris et les faire pivoter (Souris et Ctrl ou Alt) à Gauche ou Droite,
    les dessiner sur un cercle concave ou convexe tel quel ou alignés sur la normale du cercle, les espacer sur une droite ou un cercle avec le mouvement Souris et une touche clavier etc. On arrive à un effet 3D avec un petit déplacement du Texte sur un fond coloré ou une photo. On peut imaginer d'autres possibilités.

    Le code est pour VB6, à adapter pour VB.Net
    Salutation à tout le monde

+ Répondre à la discussion
Cette discussion est résolue.

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo