Comment intégrer des images dans un logiciel de question réponse

yannel777 Messages postés 129 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 24 janvier 2023 - Modifié par jordane45 le 19/06/2016 à 17:08
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 20 juin 2016 à 08:09
Bonjour,


précédemment, j'avais fait un logiciel de question réponse.

Supprimer l'alerte | Modifier | Supprimer | Type de modification
Question
Vous ne pouvez pas voter pour votre propre billet.
0
bonjour,

précédemment, j'avais fait un logiciel de question réponse.



Maintenant , je souhaiterai intégré des images avec une picturebox ou plusieurs picturebox reliant à une même réponse.

mais je n'arrive pas à trouvé les ligne de comment pour intégrer mes image avec mon label (Question) et même en lien avec ma réponse .

par exemple "image 1 + image 2 + image 3 + image 4 = "la réponse" (ou la question)

Supprimer l'alerte | Modifier | Supprimer | Type de modification
Question
Vous ne pouvez pas voter pour votre propre billet.
0
bonjour,

précédemment, j'avais fait un logiciel de question réponse.



Maintenant , je souhaiterai intégré des images avec une picturebox ou plusieurs picturebox reliant à une même réponse.

mais je n'arrive pas à trouvé les ligne de comment pour intégrer mes image avec mon label (Question) et même en lien avec ma réponse .

par exemple "image 1 + image 2 + image 3 + image 4 = "la réponse" (ou la question)



Je souhaiterais définir mes images que j'ai télécharger de mon ordinateur et les intégrer dans mes picturebox

voici le code.


 Public Class Jeucarrefour
    Dim mouse_offset
    Private Sub Verbes_MouseDown(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.MouseEventArgs) _
    Handles MyBase.MouseDown
        mouse_offset = New Point(-e.X, -e.Y)
    End Sub
    Private Sub Verbes_MouseMove(ByVal sender As Object, _
      ByVal e As System.Windows.Forms.MouseEventArgs) _
      Handles MyBase.MouseMove
        If e.Button = Windows.Forms.MouseButtons.Left Then
            Dim mousePos As Point = Control.MousePosition
            mousePos.Offset(mouse_offset.X, mouse_offset.Y)
            Location = mousePos
        End If
    End Sub
    Private numéroQuestion As Integer
    Private random As Random = New Random()
    Private nbTentatives As Integer
    Private questions As String() =
        {
        "Abricot",
        "Asperge",
        "Ail Vrac",
        "Artichaut",
        "Ananas",
        "Aubergine",
        "Avocat",
        "Banane",
        "Batavia",
        "Bettrave Bio",
        "Carottes Sable",
        "Carottes",
        "Céleri Branche",
        "Céleri Rave",
        "Champinon Vrac",
        "Cerise",
        "Chou Vert",
        "Chou Blanc",
        "Chou Fleur",
        "Chou Rouge",
        "Citron Pièce",
        "Clémentine",
        "Citron Vert",
        "Concombre",
        "Courgette",
        "Endive",
        "Fenouil",
        "Feuille de Chêne Rouge",
        "Feuille de Chêne Verte",
        "kiwi Pèce",
        "Laitue Verte",
        "Melon Jaune",
        "Melon Vert",
        "Melon",
        "Nectarine",
        "Mangue",
        "Navet",
        "Noix Coco",
        "Oignon En Vrac",
        "Orange Filmé",
        "Orange",
        "Pastèque",
        "Patate Douce",
        "Pêche Plate",
        "Pêche",
        "Pomme de terre Vrac",
        "Persil En Botte",
        "Poire William",
        "Poire Conférence",
        "Poire Comice",
        "Poireaux Vrac",
        "Poivron Rouge",
        "Poivron Vert",
        "Pomelos Floride",
        "Pomme Canada",
        "Pomme Elsta",
        "Pomme Golden",
        "Pomme Granny",
        "Pomme Gala",
        "Ruhbarbe",
        "Raisin Blanc",
        "Radis Rose",
        "Tomate Allongée",
        "Tomate Coeur De Boeuf",
        "Tomate Grappe",
        "Tomate Ronde",
        "Tomate Coktail",
        "Sac Plastique"
               }

    Private réponses As String() =
          {
        "40",
        "10",
        "900",
        "201",
        "100",
        "11",
        "102",
        "41",
        "242",
        "17",
        "14",
        "13",
        "7",
        "214",
        "15",
        "42",
        "220",
        "4",
        "218",
        "219",
        "107",
        "44",
        "106",
        "221",
        "18",
        "19",
        "21",
        "245",
        "246",
        "115",
        "247",
        "104",
        "112",
        "659",
        "50",
        "117",
        "22",
        "121",
        "3",
        "54",
        "56",
        "157",
        "861",
        "710",
        "57",
        "237",
        "230",
        "65",
        "61",
        "62",
        "28",
        "166",
        "29",
        "129",
        "74",
        "70",
        "67",
        "71",
        "68",
        "760",
        "159",
        "226",
        "253",
        "902",
        "37",
        "35",
        "77",
        "111"
}


    Private Sub Jeucarrefour_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.TabIndex = 0
        InitialiserNouvelleQuestion()


    End Sub

    Private Sub InitialiserNouvelleQuestion()
        Me.numéroQuestion = random.Next(0, questions.Length - 1)
        Réponse.Visible = False
        Réponse2.Visible = False
        Nomproduits.Visible = True
        Me.TextBox1.Enabled = True
        Me.nbTentatives = 0
        Me.numéroQuestion = random.Next(0, questions.Length - 1)
        Nomproduits.Text = Me.questions(Me.numéroQuestion)
        TextBox1.Clear()
    End Sub


    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Accueil_carrefour.Show()
        Me.Dispose()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Verification()

    End Sub
    Sub Verification()
        If TextBox1.Text = Me.réponses(Me.numéroQuestion) Then
            Réponse.Visible = True
            Réponse.ForeColor = Color.Green
            Réponse.Text() = "Correct"
            Timer1.Start()
            Timer1.Interval = 1200

        Else
            Réponse2.Visible = True
            Réponse.Visible = False
            Réponse2.ForeColor = Color.Red
            Réponse2.Text = " Réponse Incorrecte"
            TextBox1.Focus()
            TextBox1.Clear()
            Me.nbTentatives = Me.nbTentatives + 1

            If Me.nbTentatives = 3 Then
                MsgBox("La Réponse est " & Me.réponses(Me.numéroQuestion), 32, "Questions")
                Timer1.Start()
                Timer1.Interval = 1500
            End If
        End If

    End Sub


    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
        If e.KeyChar = Chr(13) Then
            Verification()
            e.Handled = True
        Else
            e.Handled = False
        End If
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        Timer1.Stop()
        TextBox1.Clear()
        Nomproduits.Visible = False
        InitialiserNouvelleQuestion()
    End Sub



    Private Sub Réponse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Réponse.Click

    End Sub

    Private Sub Réponse2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Réponse2.Click

    End Sub
End Class 




Pourriez-vous m'aider, merci de votre compréhension.

3 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
19 juin 2016 à 17:41
Bonjour,

VB.net est un langage objet, et donc écrire des objets est une (la) solution.

Ça t'éviterait tout ton bazar pour jongler avec 2 tableaux.
Tu pourrais utiliser le binding pour afficher les questions et les réponses, les images en winform je ne sais pas.
Voir un exemple ici
http://codes-sources.commentcamarche.net/faq/1291-utilisation-du-binding-au-travers-de-l-objet-databindingsource

Et même plus facilement mettre tes questions, tes réponses et les chemins d'images dans un fichiers de données (csv, xml, json, etc...) et ainsi modifier tes questionnaires sans tout recompiler.


Vite fait, un truc comme ça
	Public Class QuestionReponse
		Private Sub New(ByVal LaQuesion As String, ByVal LaReponse As String, ByVal LesImages As List(Of String))
			Question = LaQuesion
			Reponse = LaReponse
			chemminsImages = LesImages
		End Sub

		#Region "Propriétés"
		Private privateQuestion As String
		Public Property Question() As String
			Get
				Return privateQuestion
			End Get
			Private Set(ByVal value As String)
				privateQuestion = value
			End Set
		End Property

		Private privateReponse As String
		Public Property Reponse() As String
			Get
				Return privateReponse
			End Get
			Private Set(ByVal value As String)
				privateReponse = value
			End Set
		End Property

		Public ReadOnly Property Images() As List(Of Bitmap)
			Get
				'ici logique pour retourner une collection d'images à partir de la liste des chemins 
			End Get
		End Property
		#End Region

		Private chemminsImages As List(Of String)

		Public Shared Function ImportCsv(ByVal Filename As String) As List(Of QuestionReponse)
			'En supposant un fichier csv, avec une ligne d'entête, séparé par ;
			'Les données sont rangées ainsi : Question;Réponse;Image1;Images2;...;ImagesN
			Return (
			    From ligne In File.ReadAllLines(Filename).Skip(1)
			    Let tab = ligne.Split(";"c)
			    Select New QuestionReponse(tab(0), tab(1), tab.Skip(2).ToList())).ToList()
		End Function



	End Class




0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
19 juin 2016 à 17:41
PS, merci à Jordane d'avoir corrigé ta coloration syntaxique.
0
yannel777 Messages postés 129 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 24 janvier 2023
19 juin 2016 à 19:02
Bonjour, merci beaucoup de votre réponse, et d'avoir remis mon code de coloration syntaxique (je ne trouve pas comment le faire)
je voulais réaliser cela, sous ce format de graphisme pour mon travail.


voir lien:

[URL=http://www.hostingpics.net/viewer.php?id=591853picture.jpg][IMG]http://img11.hostingpics.net/thumbs/mini_591853picture.jpg/IMG/URL

Merci de votre compréhension.
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
Modifié par Whismeril le 19/06/2016 à 19:15
Pour la coloration c'est
http://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code

tu peux aussi poster une image directement dans le post, c'est décrit dans le même document.
0
Oui mais je préfère la deuxième solution mais c''est quoi un fichier de donnée, est ce que c'est un fichier qu'on crée avec par exemple, Exel puis l'intégrer (l'associer) avec le logiciel vb2010 ou le logiciel intègre déjà une création de fichier de données, il n'y a plus qu'à l'associer

Merci de votre compréhension.
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
20 juin 2016 à 08:09
Bonjour,

Je souhaiterais définir mes images que j'ai télécharger de mon ordinateur et les intégrer dans mes picturebox

Voici une manière de procéder :

https://msdn.microsoft.com/fr-fr/library/ms172590(v=vs.90).aspx
0
Rejoignez-nous