Page 1 sur 1

[R] Utilisation de Switch/Case

Posté : lun. 08 sept. 2014 20:35
par Popipipo
Bonjour à tous ,
J'ai un problème avec ce code . Lorsque que je clique sur le bouton "Calculer" rien ne se produit :cry: .
Merci d'avance pour votre future aide qui j’espère réglera mon manque cruel de culture en AutoIt :o

Code : Tout sélectionner

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 532, 238, 243, 201)
GUISetCursor (3)
GUISetFont(8, 800, 0, "MS Sans Serif")
GUISetBkColor(0xA6CAF0)
$Label1 = GUICtrlCreateLabel("Calculez votre IMC", 152, 16, 208, 38)
GUICtrlSetFont(-1, 20, 400, 0, "Impact")
$Input1 = GUICtrlCreateInput("Votre taille en Cm ", 176, 104, 161, 21)
$Input2 = GUICtrlCreateInput("Votre poid en Kg", 177, 144, 159, 21)
$Calculer = GUICtrlCreateButton("Calculer", 152, 200, 209, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        case $Calculer
            $donnee_de_inputbox1 = GUICtrlRead ($Input1)
            $donnee_de_inputbox2 = GUICtrlRead ( $Input2 )
            $IMC =  $donnee_de_inputbox2 / ( $donnee_de_inputbox1 * $donnee_de_inputbox1 )

        $IMCRes = $IMC

        Switch $IMCRes

            case 1 to 16.5
            MsgBox(10,"IMC","Vous etes Dénutrie ")

            case 16.5 to 18.5
            MsgBox(10,"IMC","Vous etes Maigre ")

            case 18.5 to 25
            MsgBox(10,"IMC","Vous etes Normal")

            case 25 to 30
            MsgBox(10,"IMC","Vous etes en Surpoids ")

            case 30 to 35
            MsgBox(10,"IMC","Vous etes Obèse")

            case  40 to 60
            MsgBox(10,"IMC","Vous etes en  Obèsité morbide !!")




        EndSwitch


    EndSwitch
WEnd


Bonne soirée a tous

Re: [..]Utilisation de Switch/Case

Posté : lun. 08 sept. 2014 20:57
par Tlem
Il me semble qu'en la circonstance, vos variables $donnée_de_input1 et $donnée_de_input2 sont lues en tant que chaîne et non en tant que nombre ...
Convertissez en nombre, effectuez la division puis pour finir faites la comparaison. ;)

Envoyé depuis mon appareil mobile.

Re: [..]Utilisation de Switch/Case

Posté : lun. 08 sept. 2014 21:09
par orax
Le calcul ou autre chose n'est pas bon.
100 000 kg / (180 cm * 180 cm) = "Dénutrie" :shock:

Et aussi dans MsgBox(10, ...), 10 est une valeur de retour et elle ne fait pas partie des valeurs autorisées. Voir le tableau en dessous (après Remarks) dans l'aide.

Re: [..]Utilisation de Switch/Case

Posté : lun. 08 sept. 2014 21:18
par TommyDDR
C'est surtout que le nombre donné est plus petit que 0.00x
Donc on ne rentre dans aucun case.

Calcul IMC : kg/(m*m) et non kg/(cm*cm)

Vous devez diviser par 100 $donnee_de_inputbox1.

Avant de demander de l'aide il faut toujours penser à afficher ses variables (MsgBox / ConsoleWrite / etc), vous vous seriez rendu compte que votre valeur était trop petite :wink:

Edit : MsgBox(10, ...)
10 ? d'où sort il ?
Cela n'existe pas (et empêche la MsgBox de s'afficher)

Re: [..] Utilisation de Switch/Case

Posté : mar. 09 sept. 2014 16:59
par Popipipo
Merci beaucoup pour votre aide et votre attention . :D
Mais juste une dernière question pourquoi le 10 empêche d'ouvrir la Msgbox ?

Re: [R] Utilisation de Switch/Case

Posté : mar. 09 sept. 2014 22:31
par TommyDDR
Parceque ce n'est pas un flag valide (Appuyez sur F1 crédidiou !)