[..] Problème d'utilisations de ComboBox

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Répondre
Telni
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 19 mai 2011 10:51
Status : Hors ligne

[..] Problème d'utilisations de ComboBox

#1

Message par Telni »

J'suis en train de faire un petit soft pas bien compliqué, ni même bien utile, pour une présentation orale devant un jury, histoire de passer mon BTS.
C'est une feuille de calculs simplifiée, pour les lancers de dés à D&D. Oui, c'est loin d'être complet, et ça doit déjà exister. Mais bon... Faut bien débuter ^^;

Bref. Lorsque je définis la combobox pour le choix des armes, j'ai plusieurs soucis :

1-Création de la box :

Code : Tout sélectionner

Global $CBarme = GUICtrlCreateCombo("Choisir une arme", 40, 112, 105, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
            GUICtrlSetData(-1,"1d2|1d4|1d6|1d8|1d10|1d12|2d4|2d6")
 
(le Global et la fin de la première ligne sont générés par Koda, je ne sais pas si je dois les laisser ? )
Sinon, à l'affichage, tout se passe bien.

2-Utilisation des valeurs:
Évidemment, la valeur "1d4" (par exemple) n'est pas exploitable. Je ne sais ni comment prendre le "1" et le "4" (pour arriver à quelque chose du genre $total = $nombreDeDés * Random($valeurDuDé) ). L'autre soucis, relativement majeur, c'est que je ne sais pas attribuer une valeur associée à la sélection.

Code : Tout sélectionner

        Case $Bdeg
            ;Choix de l'arme
            If Not ($CbArme = "Choisir une arme") Then  ;Pour vérifier que le choix n'est pas celui par défaut
                $x = 
                                $y=
                $degatArme = $y * Random($x)
                        Else
                                MsgBox(48, "Attention", "Vous n'avez pas choisi d'arme.")
            EndIf
 
Une autre erreur que je retrouve, et que lorsque je tombe dans le cas du message d'erreur, le programme quitte complètement. Y a-t-il une alternative moins violente qu'un "quit" ou un "break" ?

Merci de votre patience et d'avoir lu jusque là. Je vais resté scotché au pc toute la journée et une bonne partie de la nuit, donc je devrais être relativement réactif.
-Telni-
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..]Problème d'utilisations de combo box

#2

Message par ZDS »

Bonjour,

Le traitement de ta ComboBox te permettra pas de récupérer séparément les valeurs. Par contre, tu peux toujours chercher les valeurs dans la chaine "XdY".
► Afficher le texteValeurs des dés
Utilise la fonction avec ce que tu récupères par un GuiCtrlRead, tu obtiens alors un tableau. Index [1], tu as le nombre de dés, index [2], tu as le nombre de faces.

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Telni
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 19 mai 2011 10:51
Status : Hors ligne

Re: [..]Problème d'utilisations de combo box

#3

Message par Telni »

Merci ZDS, j'vais tester ça de suite, et je reviendrai par la suite pour le compte-rendu. Même si ça marche ^^
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..]Problème d'utilisations de combo box

#4

Message par ZDS »

Je profite de ton post pour corriger ton précédent code : $CbArme est l'identifiant de ta comboBox, pas son contenu. Pour le contenu, il faut utiliser GuiCtrlRead :

Code : Tout sélectionner

Case $Bdeg
    ;Choix de l'arme
    Local $CbArme_values = getValuesFromDice(GuiCtrlRead($CbArme))
    If Not @error Then
        $x = $CbArme_values[1]
        $y = $CbArme_values[2]
        $degatArme = $y * Random($x)
    Else
        MsgBox(48, "Attention", "Vous n'avez pas choisi d'arme.")
    EndIf
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Telni
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 19 mai 2011 10:51
Status : Hors ligne

Re: [..]Problème d'utilisations de combo box

#5

Message par Telni »

Couper le résultat en tronquant les morceaux utiles, et mettre ça dans un tableau, j'aurais dû y penser ><
Merci encore, ZDS ! :mrgreen:

J'ai encore un petit soucis d'affichage :$
Voici à quoi ça ressemble.

Sur la partie inférieure, le résultat s'affiche comme il faut dans la petite boîte de texte à droite.
Par contre, lorsque que je fais un calcul de dégâts, ou d'attaque, ça me ferme immédiatement la fenêtre.
Le code d'affichage d'un lancer de dé divers :

Code : Tout sélectionner

        Case $Bd2
            $total = Random(1,2,1)
            GUICtrlSetData($ResDes, $total)
 
(ResDes = Résultat Dés)
Le code d'affichage d'un des autres lancers :
► Afficher le texte
($Bdeg = Bouton de dégâts ; $ResDeg = Résultat des dégâts)

Désolé de t'embêter autant. Mais après, j'ai fini.
Me restera juste à afficher un duplicatat de chaque résultat dans la zone de texte à l'extrême droite, pour faire un petit historique.
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..]Problème d'utilisations de combo box

#6

Message par ZDS »

J'aperçois pas mal d'erreurs dans ton code (ne pas oublier qu'un Guictrlread te retourne un résultat un peu "commun"; pour le traiter comme un nombre, mieux vaut l'associer à un Number(...)).

Par contre, avec un si petit bout de code, il est impensable de trouver d'où vient ton problème majeur, comme l’arrêt intempestif du script. Si tu souhaites de l'aide, poste ton code en entier (pas besoin des images, juste le code et les ressources nécessaires - #includes persos notamment). Si tu me fournis ça dans la soirée, j'essayerai de te répondre rapidement, au plus tard demain matin.

A bientôt !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Telni
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 19 mai 2011 10:51
Status : Hors ligne

Re: [..]Problème d'utilisations de combo box

#7

Message par Telni »

► Afficher le texte
Voici le code en entier. J'vais vérifier mes GUICtrlRead, ainsi que les conversions en entier.
Merci ZDS, vraiment, tu me sauves <3
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème d'utilisations de combo box

#8

Message par mikell »

Je n'ai pas d'arrêt intempestif du script :shock:
A part cette petite modif à faire
► Afficher le texte
tout fonctionne bien chez moi
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Telni
Niveau 1
Niveau 1
Messages : 10
Enregistré le : jeu. 19 mai 2011 10:51
Status : Hors ligne

Re: [..] Problème d'utilisations de ComboBox

#9

Message par Telni »

Merci Mikell.
Les actions sur les boutons des 2 premiers groupes me faisaient fermer l'appli é_è
C'est réglé, même si je n'ai pas d'explication.

Il faut juste que je trouve comment stack les résultats les un sous les autres dans la zone d'edit à gauche, et j'ai fini.
J'suis un poil à la bourre ^^;
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Problème d'utilisations de ComboBox

#10

Message par mikell »

Telni a écrit :Les actions sur les boutons des 2 premiers groupes me faisaient fermer l'appli é_è
C'est réglé, même si je n'ai pas d'explication
Dans les 2 'Case' correspondant à ces boutons il y a

Code : Tout sélectionner

$total = $bonusArme + $bonSou + $bonusAtt + $bonusDeg
or dans le script la variable $bonusArme peut ne pas avoir été définie quand les boutons sont pressés => erreur
Un "Global $bonusArme" en tête de script règle le problème
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
ZDS
Membre émérite
Membre émérite
Messages : 554
Enregistré le : jeu. 10 juin 2010 10:35
Localisation : 22300 Cul-d'chouette Langue-de-vache
Status : Hors ligne

Re: [..] Problème d'utilisations de ComboBox

#11

Message par ZDS »

Je me suis permis de modifier ton code (indenté pour que ce soit plus facile à lire, et quelques corrections de variables à instancier, et des erreurs de conceptions : $CkMal2 est l'identifiant d'une checkbox donc un nombre arbitraire comme un numéro de sécu, pas True/False selon qu'elle soit cochée ou non)

Bref, il reste deux ou trois choses à faire, mais voila une première mouture :
► Afficher le textecode
A tout à l'heure !
ZDS : Chef de projet du nAiO (logiciel AutoIt gratuit sous licence CC 4.0 BY-NC-SA)
Tout problème a une solution, donc si il y a pas d'solution, c'est qu'il y a pas d'problème !
Répondre