Page 1 sur 1

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

Posté : mer. 20 juin 2012 15:06
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-

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

Posté : mer. 20 juin 2012 16:13
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 !

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

Posté : mer. 20 juin 2012 16:24
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 ^^

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

Posté : mer. 20 juin 2012 16:30
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

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

Posté : mer. 20 juin 2012 17:19
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.

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

Posté : mer. 20 juin 2012 17:43
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 !

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

Posté : mer. 20 juin 2012 17:57
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

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

Posté : mer. 20 juin 2012 21:40
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

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

Posté : jeu. 21 juin 2012 12:00
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 ^^;

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

Posté : jeu. 21 juin 2012 13:13
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

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

Posté : jeu. 21 juin 2012 17:14
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 !