[R] 100 GUI (script "multi-GUI"), simplification possible ?
Posté : jeu. 10 mars 2011 15:36
Bonjour à tous. J'ai pour projet de créer un questionnaire pour des partiels. Il comporterait au moins 100 questions. Chaque question sera posée sur une unique GUI, l'utilisateur cochera les réponses qu'il pense être exactes (c'est un QCM à 5 choix). Ensuite, il clique sur un bouton "Valider" et le script passe à la question suivante, donc à la GUI suivante. Pour le moment, la seule solution que j'ai serait de créer 100 GUI, ce qui me parait idiot, et je cherche donc un moyen de diminuer considérablement le code. En soit je m'en fiche un peu, le script fonctionnera, mais pour la clarté et simplicité, j'aimerais connaitre la solution. J'ai déjà lu ceci : http://www.autoitscript.fr/forum/viewto ... =11&t=3952
Evidemment, pour 2 GUI ça passe, mais 100 ...
J'avais pensé à mettre la création d'une GUI sous une fonction, comme ceci :
Seulement, comment passer d'une GUI à une autre, si j'ai toujours la même variable pour deux GUI différentes ? Si j'avais des noms différents, il suffirait de mettre GUISetState(@SW_HIDE) + le nom de la GUI en question, seulement je ne vois pas comment faire ceci. Et de plus, je compte évidemment faire une correction, j'ai donc besoin de garder en mémoire les cases cochées (bon dans mon exemple ce sont des boutons radio au lieu de checkbox, mais peu importe) qui ont la aussi le même problème, je modifierais 100 fois la même variable, qui n'aura qu'un résultat. Un rapport avec les variables de type "local" ?
Bref voilà, je m'en remets à vous pour simplifier le code !
[edit] : Est-ce que le fait de mettre mes variables en local, et de les stockées dans un tableau fonctionneraient ? Reste toujours le problème pour changer de GUI
Evidemment, pour 2 GUI ça passe, mais 100 ...
J'avais pensé à mettre la création d'une GUI sous une fonction, comme ceci :
Code : Tout sélectionner
func creation_graphique($la_question, $reponse1, $reponse2,$reponse3)
$Form1 = GUICreate("Questionnaire médecine", 506, 208, 221, 116)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
$question = GUICtrlCreateLabel($la_question, 40, 56, 392, 17)
$choix1 = GUICtrlCreateRadio($reponse1, 56, 136, 49, 17)
GUICtrlSetOnEvent(-1, "Radio1Click")
$choix2 = GUICtrlCreateRadio($reponse2, 209, 136, 49, 17)
GUICtrlSetOnEvent(-1, "Radio2Click")
$choix3 = GUICtrlCreateRadio($reponse3, 383, 136, 49, 17)
GUICtrlSetOnEvent(-1, "Radio3Click")
GUISetState(@SW_SHOW)
endfunc
Bref voilà, je m'en remets à vous pour simplifier le code !
[edit] : Est-ce que le fait de mettre mes variables en local, et de les stockées dans un tableau fonctionneraient ? Reste toujours le problème pour changer de GUI