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 :

Créer des questions choix multiples sous VB 2010.


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut Créer des questions choix multiples sous VB 2010.
    Bonjour,


    Je suis actuellement entrain créer un mini QCM.

    Je dispose d'une image ou vidéo, et d'un label dans ma question avec plusieurs choix possible comme réponse à cliquer sur les 4 gros boutons carrés.

    Au final les bonnes réponses seront affichées en vert ou sinon en cas de mauvaise réponse le bouton carré s'affichera en rouge.

    voir image exemple:

    Nom : 1426546.jpg
Affichages : 1181
Taille : 65,2 Ko



    Je souhaiterai également faire une session de 10 questions totalement aléatoire puis une autre session de 10 questions ainsi de suite (Random).

    C'est possible de faire cela?

    Je code avec windows Form.

    Je ne trouve pas le bon code en vb.net adéquat à mon projet.

    Merci de votre compréhension.

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Le Form que tu présentes me semble être adapté à ce que tu décris comme objectif, aussi je ne comprends pas ta question.

    • Est-ce la génération de nombre aléatoire dans un gamme de valeur limitée (ex. de 1 à 10 s'il y a 10 questions possibles) ?
    • Est-ce la façon de stocker les questions (ex.un fichier de lignes où chaque ligne contient une question et les réponses pour les labels et la bonne réponse) ?
    • Est-ce comment définir une session (c'est-à-dire comment choisir par ex. 10 questions parmi 100) ?


    Bref, sur quoi puis-je réfléchir pour t'aider ...


  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut Réponse
    Bonjour,

    Pour te réponde à tes questions,

    oui de 1 à 10 , il y a bien 10 question possible et cela est aléatoire et pas deux fois les même questions.

    Nom : dfdfd.JPG
Affichages : 1105
Taille : 54,6 Ko
    (Le même système que les questionnaires du code de la route mais a part que la il y a dix questions)



    chaque label à une question (ligne) et chaque bouton à une réponse.


    Nom : ssssssssss.jpg
Affichages : 1172
Taille : 68,3 Ko


    "Est-ce comment définir une session (c'est-à-dire comment choisir par ex. 10 questions parmi 100) ?"


    Nom : sssss.JPG
Affichages : 1102
Taille : 43,5 Ko

    Intégré 10 même questions par session.

    merci de votre compréhension

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Je en peux charger ton projet (https://uc210e6c430f81cec4a91794e24e...ZsC_JyHUg/file), je reçois une erreur 404.
    Mais ce n'est pas grave car je préfère travailler sur mon code. Mais c'est aussi pour cela que j'ai besoin d'explications ...

    Pour ce qui concerne la procédure LectureQuestionnaire, elle ne sert qu'à lire le fichier des question et à remplir la table interne des questions.
    Au début de cette discussion, tu as présenté la possibilité d'offrir plusieurs boutons de choix de questions, en plusieurs séries (4 boutons en série de 10 questions, 4 en plusieurs, 4 en série de 20 questions, 4 en série de 30 questions et 4 en série de 30 questions), cf. ton message #3 (11/4, 10h06).
    Pour que mon code n'interdise pas cette éventuelle façon de faire, j'ai permis le choix parmi plusieurs fichiers questionnaires, chacun pouvant contenir un grand nombre de questions. Le nombre de question utilisé pour une session de travail est fixé dans la zone "Nombre de questions". Il est ainsi possible de proposer plusieurs série de 10 questions sur un fichier de 200, par exemple, de même qu'il est aussi possible de proposer des série de 20, 30 ou 40 question s sur le même fichier. Au cours d'une même séance de travail, les différents accès au même fichier rapportent des questions différentes.
    Il faudra bien que tu écrives ton questionnaire ...
    Un fichier de question est modifiable avec NotePad. Chaque champ est séparé du suivant par le caractère tilte (ASCII 126, ~) et ce qui concerne une question avec sa sous-question et les réponses constitue une ligne du fichier. Un fichier de 100 questions contiendra donc 100 lignes PLUS 1, la première ligne du fichier n'est pas une question, mais le nombre de questions.
    Par exemple, le fichier Questionnaire01.txt que j'ai livré pour exemple avec mon code :
    Nom : Quest.jpg
Affichages : 174
Taille : 172,9 Ko
    Voici la structure de l'enregistrement d'une question :
    1~ArbresEnneiges.jpg~Es-ce une prairie~Oui~Non~Y a-t-il des arbres~Oui~Non~A~C~
    1~ Numéro d'ordre de la question (permet notamment de ne pas "pécher" deux fois la même question)
    ArbresEnneiges.jpg~ Nom du fichier de l'illustration qui accompagne la question
    Es-ce une prairie~ Question primaire (Question1)
    Oui~ Première réponse à la question primaire (ReponseA, bouton A)
    Non~ Deuxième réponse à la question primaire (ReponseB, bouton B)
    Y a-t-il des arbres~ Question secondaire (Question2)
    Oui~ Première réponse à la question secondaire (ReponseC, bouton C)
    Non~ Deuxième réponse à la question secondaire (ReponseD, bouton D)
    A~ Désignation de la bonne réponse à la question primaire (réponse du bouton A, dans ce cas)
    C~ Désignation de la bonne réponse à la question secondaire (réponse du bouton C, dans ce cas)

    Toutes ces informations sont gérées en mémoire dans TableauDesQuestions() après lecture du nombre de questions souhaité dans le fichier. Ce tableau contient donc les réponses attendues pour chaque question, ce sont les champs RepOK1 et RepOK2 qui reçoivent respectivement A ou B et C ou D selon ce qui est indiqué dans le fichier. Pour permettre une relecture du questionnaire en sachant si la réponse fournie était bonne ou pas, les champs RepOK1 et RepOK2 restent inchangés en cas de mauvaise réponse, ou reçoivent les caractères "OK" en plus de la lettre du bouton en cas de bonne réponse (ce détail est une modif par rapport à mes codes précédents).
    Il est ainsi possible de relire toutes la table et pour chaque question, savoir quelle aurait du être la réponse et ce qu'elle à été réellement :
    Avec la première question de l'exemple ci-dessus, les réponses devaient être A pour RepOK1 et C pour repOK2.

    On aura dans le TableauDesQuestions() :
    En cas de bonne réponse à la question primaire RepOK1 = AOK
    En cas de mauvaise réponse à la question primaire RepOK1 = A
    et
    En cas de bonne réponse à la question secondaire RepOK2 = COK
    En cas de mauvaise réponse à la question primaire RepOK2 = C

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            Select Case B.Text
                Case "A", "B"
                    If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK1 = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 & "OK"
                    End If
                Case "C", "D"
                    If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK2 = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 & "OK"
                    End If
            End Select
    Il est ainsi possible de relire en détail toute la session de travail.

    Pour ce qui est de compter les points, il suffit d'un compteur (CompteurPoints) intialisé à 0 avant la première réponse et de l'incrémenter (ou pas) avant de passer à la question suivante. Vu que les champs RepOK1 et RepOK2 contiennent 3 caractères an cas de bonne réponse (la lettre du bouton + "OK"), le code suivant devrait faire l’affaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            If TableauDesQuestions(IndiceQuestionActuelle).RepOK1.Length = 3 And TableauDesQuestions(IndiceQuestionActuelle).RepOK2.Length = 3 Then
                CompteurPoints += 1
            End If
    Pour ce qui est du jeu des couleurs et des boutons, je n'ai toujours pas compris (désolé ... ), mais il me semble qu'il y a contradiction entre mettre une couleur "Bon ou mauvais" et permettre de recliquer sur le bouton pour donner une autre réponse ...

    Je ne comprends pas trop non plus comment (ou quand) lancer une relecture de correction. Ne crois-tu pas qu'un bouton "On corrige" qui commanderait le réaffichage question par question, sans modification possible, de ce qui était demandé et ce qui a été réellement répondu serait convivial ? Cela permettrait en outre de relire plusieurs fois ses erreurs ...

    Tu as là matière à rélexion ... mais perso, je n'aurai probablement de temps avant mercredi soir ...

    Bonne soirée,

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Re ...

    Ceci ne répondra sans doute as à ta demande, mais ça te donnera peut-être des idées ...

    Ci-joint le fichier QCM.zip qui est un compressé d'un dossier de développement d'un programme QCM.
    Une petite vidéo sur DropBox (https://www.dropbox.com/s/evpe6py4c6crc80/QCM.mp4?dl=0) te montrera comment l’utiliser.

    Bonne soirée,

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut Re
    Merci beaucoup, je suis entrain de le modifier pour l'adapter à ma manière

    je voulais savoir comment on fait pour que la recherche de fichier "txt" se fasse automatiquement rien qu'en cliquant sur un bouton à partir de ma form "Liste des questions 1"

    Nom : sssss.JPG
Affichages : 1091
Taille : 43,5 Ko
    et qu'il se lance tout seul en automatique qu'il affiche la première question ? sur mon autre form "QCM 1Test"

    Nom : sss.JPG
Affichages : 1054
Taille : 46,5 Ko

    en gros je souhaiterai le modifier le code que vous m'avez passer.

    Nom : xxxx.JPG
Affichages : 1040
Taille : 32,9 Ko

    Merci de votre compréhension.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut re
    je me suis un peu avancer sur le code,

    J'ai réussi à ouvrir la form "FQCM" avec la deuxième ma première Form "LDQ1" ( Liste_des_questions_1)

    Avec ce code la

    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
    Public Class Liste_des_questions_1
        Private Sub LDQ1(sender As Object, e As EventArgs) Handles MyBase.Load
     
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            FQCM.Show()
            FQCM.TBNombreQuestions.Text = 20  ' Pour les tests
            FQCM.BQuestion.Text = "1ère question"
            Me.Hide()
     
        End Sub
     
     
    End Class

    mais je ne sais toujours pas comment on fait pour que l'openfiledialog cible par défault le fichier txt en automatique?
    en gros que les question démarre automatiquement sans qu'on appuyer sur le bouton charger le fichier et ni sur le bouton "question".


    Merci de votre compréhension.

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Oui, dans mon code c'est normal ...

    Je pars de l'idée qu'après avoir répondu au volume de questions prévu, l'opérateur courageux peut souhaiter faire une question de plus, et ce au maximum jusqu'à la fin de ce fichier de questions (celui qui est chargé en mémoire). Mais il peut s'arrêter après le volume prévu, il peut répondre NON à la question "Encore une ... ?".
    Tu peux modifier ce code pour éviter cette question et répondre NON à la place de l'utilisateur.

    Quand la session est terminée, tu peux renvoyer à ton Form principal (FQCM.Close) et choisir un autre questionnaire dansFPrincipal. Tu peux aussi l'utilisateur choisir un autre questionnaire par le bouton "Charger les questions".

    Bref, tout cela est modifiable. A toi d'adapter à ta convenance.

    Bon dimanche,

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut Remerciements
    Bonjour,

    Oui c'est ce que je vais faire merci beaucoup de m'avoir aider par gentillesse.

    bientôt.

  10. #10
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,


    J'ai pu passer une heure sur ton projet hier soir.

    Voici ce qui en résulte : QCM_v4.zip

    et une petite video : https://www.dropbox.com/s/evpe6py4c6crc80/QCM.mp4?dl=0

    Voici ce qui a été traité :

    La gestion du formulaire Principal avec ses différents boutons de choix de questionnaire n’est pas reprogrammée.
    Les modifications actuelles concernent l’exécution d’un questionnaire et reprennent ± tes options en matière de couleurs (si ce ne sont pas le même, il suffit de les changer), en matière de gestion des points et en matière de correction de la session.

    Départ :
    Couleur système des boutons de l’application

    Réponse partielle :

    Jaune sur bonne réponse
    Un re-clic d’un bouton Jaune est ignoré

    Gris sur mauvaise réponse
    Un re-clic d’un bouton Gris remet tous les boutons de la question en couleur système et il faut recommencer les réponses

    Quand la question suivante est demandée : les points sont comptabilisés et affichés

    Quand le jeu de questions est terminé, il est possible de cliquer le bouton BCorrection
    La première question est présentée avec ses réponses et il faut cliquer « Question … » pour passer au corrigé de la question suivante.
    Pendant le corrigé, les bonnes réponses sont présentées avec le bouton en Jaune et les mauvaises avec le bouton en Rouge
    Pendant le corrigé, il n’est pas possible de cliquer les boutons A, B, C et D.

    Bonne journée,

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut
    Bonjour,

    d'abord, je vous remercie infiniment de ce que vous faite pour moi ( d'avoir passer du temps)

    et de m'avoir expliquer en détail tout le processus du logiciel.


    J'ai testé votre logiciel , est-ce normal après les 3 questions, il s'affiche encore une question? et aussi on ne peut plus charger une autre série ?


    C'est possible de mettre aussi une mettre (la forme principale) après "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Private Sub TraiteCorrection()
    " pour ceux qu'il veulent continuer à faire d'autre questionnaire (Text).


    Merci de votre compréhension.

  12. #12
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Je répond ici à ta question d'hier soir, à savoir : choisir le questionnaire sur un premier Form, lequel lance alors le formulaire QCM avec d’emblée, la première question affichée.

    Je te renvoie tout le projet (QCM _v2.zip) parce que j'ai dû modifier quelques portées (de Private vers Friend) dans le formulaire QCM.
    Le Form de démarrage que j'ai créé est rudimentaire, mais il te montrera comment faire pour la suite.

    Je n'aurai pas le temps de te "suivre" encore aujourd'hui mais je suis sûr que tu t'en sortiras très ben.

    Bon travail,

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut
    Bonsoir

    désolé si je vous dérange encore une fois (je suis novice), je voulais savoir si on pouvais remplacer la Comboxbox que vous avez mis par un bouton qui s'ouvre vers le bon chemin du fichier automatiquement (Questionnaire01.txt) ,sans l'openfiledialog (visible manuellement).

    en gros remplacer cela:

    Nom : 1427556.jpg
Affichages : 1044
Taille : 22,0 Ko

    par cela,


    Nom : 1427557.jpg
Affichages : 1093
Taille : 19,4 Ko



    cela est possible?

    j'ai essayer plusieurs fois d'y réfléchir mais pas trouver


    Merci cordialement

  14. #14
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonsoir,

    Bien sûr tu peux lancer un questionnaire par bouton. Au plus simple, il te suffit de copier le code que j'ai utilisé "derrière" le bouton BOK pour chacun de tes boutons en remplaçant seulement une ligne.

    Ma procédure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Sub BOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BOK.Click
     
            FormulaireQCM.DossierImage = DossierQuestionnaire
            FormulaireQCM.TBQuestionnaire.Text = DossierQuestionnaire & CBLesQuestionnaires.Text
            FormulaireQCM.BCharge_Click(Me, Nothing)
            FormulaireQCM.BQuestion_Click(Me, Nothing)
     
            FormulaireQCM.Show()
     
            FormulaireQCM.BQuestion.Text = "Question ..."
        End Sub
    recopiée pour chaque bouton avec une modification : remplacer CBLesQuestionnaires.Text par le nom du fichier destiné à ce bouton.

    Mais je me demande si tu comptes encoder en dur les noms des fichiers de questions ..., c'est-à-dire si tu comptes modifier et recompiler ton programme chaque fois que tu as un nouveau fichier à ajouter ou bien que tu veux en supprimer un ...

    Excuse-moi de n'être pas très disponible dans les prochains jours.

    A bientôt,

  15. #15
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut Re
    Bonjour, merci de votre aide et de votre patience.

    Pour répondre à vos question, je pense que je vais choisir la facilité.

    c'est de créer plein de fichiers textes avec le nombre de questions que je définirai.

    Cependant j'ai trouvé un code qui pourrai mettre toutes les proposition en vert une fois cliquer dessus et remette en couleur par défaut ( je ne change pas ces ligne car cela fonctionne bien)

    Nom : qqqqq.JPG
Affichages : 1038
Taille : 24,7 Ko

    Nom : xwxxwx.JPG
Affichages : 1054
Taille : 24,0 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub BResponse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BResponseA.Click, BResponseB.Click, BResponseC.Click, BResponseD.Click
            Dim B As Button = CType(sender, Button)
            If B.ForeColor = Color.White And B.BackColor = Color.Green Then
                B.ForeColor = Color.Black
                B.BackColor = Color.Transparent
            Else
                B.ForeColor = Color.White
                B.BackColor = Color.Green
            End If
        End Sub



    par contre vous avez mis ce code là au départ

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub BResponse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BResponseA.Click, BResponseB.Click, BResponseC.Click, BResponseD.Click
            Dim B As Button = CType(sender, Button)
    If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Or _
                B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then...
    Je suppose que cela sert à valider deux proposition?
    ou savoir si le fichier est bien charger avant de cliquer sur les proposition ?

    Je n'arrive pas à l'intégrer au code ci-dessus.

    je voulais savoir si il y a une commende pour vérifier toutes les réponses au questions par rapport au bouton (ABCD)

    qui se mette en rouge les mauvaises réponses que j'ai cliqué (bouton) et en vert les bonnes réponses les boutons où j'ai cliqué et remettre par défaut, les boutons où je n'ai pas cliquer.


    Merci de votre compréhension.
    (Ps: prenez le temps d'y répondre, je ne suis pas au jour près).

  16. #16
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Voici un nouveau code pour la procédure BResponse_Click. Tu peux remplacer sans craintes ...
    J'y ai ajouté des explications et le début ( Select Case B.Text ...) de ce qui te permettra de vérifier toutes les réponses plus tard.

    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
        Private Sub BResponse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BResponseA.Click, BResponseB.Click, BResponseC.Click, BResponseD.Click
            Dim B As Button = CType(sender, Button)
     
            ' IndiceQuestionActuelle est uune variable globale qui permet à toute portion de code de savoir de quelle question on s'occupe à cet instant.
            ' Dans cette procédure (BResponse_Click), il s'agit de vérifier le bon choix du bouton (A, B, C et D) fait par l'utilisateur pour la question actuellemebt posée.
            ' Bref, il s'agit de savoir s'il a bien répondu à cette paire de questions et d'agir en conséquence (ici, ça se résume à changer la couleur des boutons).
     
            ' Marquage à l'écran des bonnes réponses faites. Si le bouton cliqué est celui de la bonne réponse, il devient Yellow, sinon il devient Gray
            ' Les boutons qui ne sont pas cliqués restent dans le couleur d'affichage de départ.
            If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Or _
                B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                B.BackColor = Color.Yellow
            Else
                B.BackColor = Color.Gray
            End If
     
            ' Marquage dans le tableau des questions des bonnes réponses faites : la réponse (A ou B, et C ou D) est remplacée par OK si la réponse a été correcte
            ' Il est alors possible de relire le tableau (à faire ... ) en agissant selon que le RepOK1 vaut "OK" ou non, pour la question primaire
            ' et selon que le RepOK2 vaut "OK" ou non, pour la question secondaire
            Select Case B.Text
                Case "A", "B"
                    If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK1 = "OK"
                    End If
                Case "C", "D"
                    If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK2 = "OK"
                    End If
            End Select
     
            ' '' Il y a les Label des questions et des réponses : ils peuvent aussi être coloriés ...
            'LQuestion1.BackColor ...   et ForeColor aussi ...
            'LResponseA.BackColor ...
            'LResponseB.BackColor ...
            'LQuestion2.BackColor ...
            'LResponseC.BackColor ...
            'LResponseD.BackColor ...
        End Sub
    Par ailleurs, en testant ces codes, je me suis rendu compte que l'usage d'un Form maitre, tel que je te l'avais envoyé, provoquait un disfonctionnement dans la sélection des questions. J'ai modifié les procédures suivantes :

    BOK_Click dans FPrincipal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Private Sub BOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BOK.Click
            FormulaireQCM.DossierImage = DossierQuestionnaire
            FormulaireQCM.TBQuestionnaire.Text = DossierQuestionnaire & CBLesQuestionnaires.Text
            Me.Hide()
            FormulaireQCM.ShowDialog()
            End
        End Sub
    et FQCM_Load dans FQCM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        Private Sub FQCM_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
            TBNombreQuestions.Text = 3  ' Pour les tests
            BQuestion.Text = "1ère question"
            TemoinFichierCharge = False
     
            BCharge_Click(Me, Nothing)
            BQuestion.Text = "Question ..."
            BQuestion_Click(Me, Nothing)
        End Sub
    Pour faire plus simple, je te remets de dossier complet : QCM_v3.zip

    Bonne journée,

  17. #17
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut re
    Bonjour, merci beaucoup de votre aide

    j'ai su intégrer vos code mais le seul problème c'est qui comporte encore des erreur en voulant intégré mon code à moi .

    voici un exemple:
    Nom : ssssddsddddddddddd.JPG
Affichages : 1058
Taille : 185,9 Ko

    (voici le code par écrit à ajouter et juste modifier les étapes )

    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
    Private Sub BResponse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BResponseA.Click, BResponseB.Click, BResponseC.Click, BResponseD.Click
            Dim B As Button = CType(sender, Button)
     
            Dim B As Button = CType(sender, Button)
            If B.ForeColor = Color.White And B.BackColor = Color.Green Then
                B.ForeColor = Color.Black
                B.BackColor = Color.Transparent
            Else
                B.ForeColor = Color.White
                B.BackColor = Color.Green
     
            End If
     
            ReponseQuestion()
        End Sub
        Private ReponseQuestion()
     
        ' IndiceQuestionActuelle est uune variable globale qui permet à toute portion de code de savoir de quelle question on s'occupe à cet instant.
        ' Dans cette procédure (BResponse_Click), il s'agit de vérifier le bon choix du bouton (A, B, C et D) fait par l'utilisateur pour la question actuellemebt posée.
        ' Bref, il s'agit de savoir s'il a bien répondu à cette paire de questions et d'agir en conséquence (ici, ça se résume à changer la couleur des boutons).
     
        ' Marquage à l'écran des bonnes réponses faites. Si le bouton cliqué est celui de la bonne réponse, il devient Yellow, sinon il devient Gray
        ' Les boutons qui ne sont pas cliqués restent dans le couleur d'affichage de départ.
        If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Or
                B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                B.BackColor = Color.Green
            Else
                B.BackColor = Color.Gray
            End If
     
        ' Marquage dans le tableau des questions des bonnes réponses faites : la réponse (A ou B, et C ou D) est remplacée par OK si la réponse a été correcte
        ' Il est alors possible de relire le tableau (à faire ... ) en agissant selon que le RepOK1 vaut "OK" ou non, pour la question primaire
        ' et selon que le RepOK2 vaut "OK" ou non, pour la question secondaire
        Select Case B.Text
        Case "A", "B"
        If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK1 = "OK"
                    End If
        Case "C", "D"
        If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK2 = "OK"
                    End If
        End Select
     
        ' '' Il y a les Label des questions et des réponses : ils peuvent aussi être coloriés ...
        'LQuestion1.BackColor ...   et ForeColor aussi ...
        'LResponseA.BackColor ...
        'LResponseB.BackColor ...
        'LQuestion2.BackColor ...
        'LResponseC.BackColor ...
        'LResponseD.BackColor ...
        End Sub
     
    End Class
    voici le résultat:
    https://www.dropbox.com/s/3py5py01yo...20-36.mp4?dl=0


    par contre je n'arrive pas à l'intégrer avec votre code que vous avez fait.

    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
     ' IndiceQuestionActuelle est uune variable globale qui permet à toute portion de code de savoir de quelle question on s'occupe à cet instant.
        ' Dans cette procédure (BResponse_Click), il s'agit de vérifier le bon choix du bouton (A, B, C et D) fait par l'utilisateur pour la question actuellemebt posée.
        ' Bref, il s'agit de savoir s'il a bien répondu à cette paire de questions et d'agir en conséquence (ici, ça se résume à changer la couleur des boutons).
     
        ' Marquage à l'écran des bonnes réponses faites. Si le bouton cliqué est celui de la bonne réponse, il devient Yellow, sinon il devient Gray
        ' Les boutons qui ne sont pas cliqués restent dans le couleur d'affichage de départ.
        If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Or
                B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                B.BackColor = Color.Green
            Else
                B.BackColor = Color.Gray
            End If
     
        ' Marquage dans le tableau des questions des bonnes réponses faites : la réponse (A ou B, et C ou D) est remplacée par OK si la réponse a été correcte
        ' Il est alors possible de relire le tableau (à faire ... ) en agissant selon que le RepOK1 vaut "OK" ou non, pour la question primaire
        ' et selon que le RepOK2 vaut "OK" ou non, pour la question secondaire
        Select Case B.Text
        Case "A", "B"
        If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK1 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK1 = "OK"
                    End If
        Case "C", "D"
        If B.Text = TableauDesQuestions(IndiceQuestionActuelle).RepOK2 Then
                        TableauDesQuestions(IndiceQuestionActuelle).RepOK2 = "OK"
                    End If
        End Select
     
        ' '' Il y a les Label des questions et des réponses : ils peuvent aussi être coloriés ...
        'LQuestion1.BackColor ...   et ForeColor aussi ...
        'LResponseA.BackColor ...
        'LResponseB.BackColor ...
        'LQuestion2.BackColor ...
        'LResponseC.BackColor ...
        'LResponseD.BackColor ...
        End Sub
    Peut être avec la mise en place d'un timer après avoir répondu au question ?

    une fois cliquer sur les réponse, il met automatiquement les bonne réponses en jaune et les mauvais en gris au bout de 1 à 2 sec


    2) j'ai aussi un problème aussi avec une autre code

    Nom : pppp.JPG
Affichages : 1060
Taille : 145,5 Ko


    il ne va pas à la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "chercheQuestionnaire()"
    et ni à la message box "Voulez-vous faire une autre série?" en cliquant "non" à la première Message box
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Encore une question ?"
    voici un organigramme pour que vous compreniez mieux.

    Nom : aaaaaa.JPG
Affichages : 1228
Taille : 59,9 Ko

    j'espère que vous aller y arriver à recorriger ces erreurs

    merci de votre compréhension.

  18. #18
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    En vitesse ... pour te dépanner (peut-être) ...

    Les erreurs visibles sur l’illustration de ton message proviennent de ce que B n'est pas défini dans ta procédure ReponseQuestion().

    Vu que les boutons que tu veux colorer avec ton code se trouvent (en principe) sur le formulaire primaire (celui qui "lance" les questionnaires), je te propose de remplacer le code de mon FPrincipal par celui-ci :
    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
    Public Class FPrincipal
     
        Dim FormulaireQCM As New FQCM
     
        Dim DossierQuestionnaire As String = "D:\Tmp\QCM\"
     
        Private Sub BQuestionnaireS_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BQuestionnaire1.Click, BQuestionnaire2.Click
            CouleurBouton(CType(sender, Button))
            FormulaireQCM.DossierImage = DossierQuestionnaire
            Select Case sender.text
                Case "Questionnaire 1"
                    FormulaireQCM.TBQuestionnaire.Text = DossierQuestionnaire & "Questionnaire01.txt"
                Case "Questionnaire 2"
                    FormulaireQCM.TBQuestionnaire.Text = DossierQuestionnaire & "Questionnaire02.txt"
            End Select
            Me.Hide()
            FormulaireQCM.ShowDialog()
            Me.Show()
            '  End
        End Sub
     
        Private Sub CouleurBouton(ByVal B As Button)
            If B.ForeColor = Color.White And B.BackColor = Color.Green Then
                B.ForeColor = Color.Black
                B.BackColor = Color.Transparent
            Else
                B.ForeColor = Color.White
                B.BackColor = Color.Green
            End If
        End Sub
     
    End Class
    et pour que les aller-retour entre ce formulaire primaire et le questionnaire se passent bien, il te faut remplacer la procédure de chargement de FQCM par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub FQCM_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Me.Load
            TBNombreQuestions.Text = 3  ' Pour les tests
            BQuestion.Text = "1ère question"
            TemoinFichierCharge = False
     
            TableauDesQuestions = Nothing
            IndicesQuestionsPosees = Nothing
     
            BCharge_Click(Me, Nothing)
            BQuestion_Click(Me, Nothing)
            NombreQuestionsPosees = 0
        End Sub
    Bon amusement ....

  19. #19
    Membre averti
    Homme Profil pro
    Inscrit en
    Juin 2013
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2013
    Messages : 27
    Par défaut re
    Bonjour,

    je rectifie ce que vous avez dit.

    Les erreurs visibles sur l’illustration de ton message proviennent de ce que B n'est pas défini dans ta procédure ReponseQuestion().

    Vu que les boutons que tu veux colorer avec ton code se trouvent (en principe) sur le formulaire primaire (celui qui "lance" les questionnaires), je te propose de remplacer le code de mon FPrincipal par celui-ci :
    Je voulais Faire sur les 4 boutons (réponses - ABCD) (uniquement) pas sur (FPprincial.vb) mais bien sur (FQCM)

    comme:
    Nom : qqqqq.JPG
Affichages : 1011
Taille : 24,7 Ko

    avec ce code là (ce code est bon):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub BResponse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BResponseA.Click, BResponseB.Click, BResponseC.Click, BResponseD.Click
            Dim B As Button = CType(sender, Button)
            If B.ForeColor = Color.White And B.BackColor = Color.Green Then
                B.ForeColor = Color.Black
                B.BackColor = Color.Transparent
            Else
                B.ForeColor = Color.White
                B.BackColor = Color.Green
            End If
     
        End Sub


    donc pour simplifier les choses je pense aussi, que cela serai le mieux c'est de mettre en plus 1 timer (pour définir un temps de réponse à chaque questions) puis qui amènerai à la bonne réponse.



    par contre le code que vous avez fait je ne sais pas où l'intégrer (avec ces modification que j'ai pu faire). Mes ligne de commandes sur les bouton de couleur que j'ai fait ainsi que le timer et la réponse qui vient ensuite.)


    voici ce que j'ai fait.


    Nom : pppppo.JPG
Affichages : 1043
Taille : 182,8 Ko



    il me met cette erreur là.

    Nom : aaaaadddd.JPG
Affichages : 1030
Taille : 237,3 Ko


    Merci de votre compréhension


    cordialement.

    Bonne journée

  20. #20
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour,

    Je voulais Faire sur les 4 boutons (réponses - ABCD) (uniquement) pas sur (FPprincial.vb) mais bien sur (FQCM)
    si tu mets mon bloc If.. End If en commentaire et que tu places en-dessous les codes de ma fonction de coloriage, ça devrait aller ...

    Pour ce qui est de l'erreur, elle vient précisément de ce que n'as pas fait comme je l'indique ci-dessus. Il te faut mettre ton code de coloriage (ou l'appel de ma fonction CouleurBouton(ByVal B As Button)) dans ma procédure BResponse_Click(...).

    Pour ce qui est du Timer, ce n'est pas une bonne idée, il est meilleur de réagir aux actions de l'utilisateur ...

    Désolé, mais j'ai pas de temps pour programmer sur ton sujet aujourd'hui.

    Bonne journée,

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/04/2008, 10h29
  2. Choix multiple sous PSQL
    Par TryExceptEnd dans le forum SQL
    Réponses: 2
    Dernier message: 03/09/2007, 00h00
  3. Créer des formes de base sous Office 2007.
    Par Samlion dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 29/07/2007, 06h56
  4. Réponses: 2
    Dernier message: 20/01/2006, 17h08
  5. Utilisation des liste à choix multiples
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/07/2005, 11h40

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