Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Prog] BASIC CALCULETTE BY GUERRION
Auteur Message
Répondre en citant
Message [Prog] BASIC CALCULETTE BY GUERRION 
Bonjour,

je me suis renseigné depuis tout ce temps entre les form designer et tout et j'ai appris les façons de faire de la programmation évenmentielle en AutoIt.
Je n'en utilise qu'une (la boucle infinie).
Voici mon code :
Code:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
;on met les includes permettant de créer des GUI
#Region ### START Koda GUI section ### Form=
Global $Form1 = GUICreate("Form1", 624, 199, 192, 124)
;forme principale
Global $Input1 = GUICtrlCreateInput("0", 0, 24, 623, 21, BitOR($ES_RIGHT,$ES_UPPERCASE,$ES_AUTOVSCROLL))
GUICtrlSetCursor (-1, 5)
; une InputBox avec changement de curseur
Global $B1 = GUICtrlCreateButton("+", 24, 64, 120, 90, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP))
Global $B2 = GUICtrlCreateButton("-", 176, 64, 120, 90, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP))
Global $B3 = GUICtrlCreateButton("X", 328, 64, 120, 90, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP))
Global $B4 = GUICtrlCreateButton("/", 480, 64, 120, 90, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP))
Global $OK = GUICtrlCreateButton("=", 0, 160, 623, 33, BitOR($BS_DEFPUSHBUTTON,$WS_GROUP))
; les boutons
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
; début de la boucle infinie
   $nMsg = GUIGetMsg()
;on regarde quel ID est appuyé ou utilisé
   Switch $nMsg
      Case $GUI_EVENT_CLOSE
         Exit
;si on appuie sur la croix on ferme
      Case $B1
         $nb1=GUICtrlRead($Input1)
         $sign="+"
      Case $B2
         $nb1=GUICtrlRead($Input1)
         $sign="-"
      Case $B3
         $nb1=GUICtrlRead($Input1)
         $sign="*"
      Case $B4
         $nb1=GUICtrlRead($Input1)
         $sign="/"
;on définie $nb1 avec GUICtrlead dans l'Input1 ainsi que le signe
      Case $OK
         $nb2=GUICtrlRead($Input1)
; on lit dans Input1
         Switch $sign
            Case "+" ; si $sign=+
               $result=$nb1+$nb2
               MsgBox(0,"RESULT","Resultat : " & $result)
            Case "-" ; si $sign=-
               $result=$nb1-$nb2
               MsgBox(0,"RESULT","Resultat : " & $result)
            Case "*" ;...
               $result=$nb1*$nb2
               MsgBox(0,"RESULT","Resultat : " & $result)
            Case "/" ;...
               $result=$nb1/$nb2
               MsgBox(0,"RESULT","Resultat : " & $result)
; on calcul le résultat (c'est ici qu'était mon problème) et on l'affiche
         EndSwitch
   EndSwitch
WEnd



Bien voila pour le code, maintenant le problème, vous avez vu que pour caculer j'ai eut recours à Switch, ce qui est long.
J'avais esseyé de mettre le signe dans une variable ($sign) comme maintenant puis de faire $result=$nb1 $sign $nb2
Evidement ça n'a pas marché, j'ai donc fait
Code:
$result=$nb1 & $sign & $nb2
Mais ça ne marche aps non-plus, j'ai donc esseyé
Code:
$result=$nb1 &$sign & $nb2
$calc=$result

Voila 10 points à celui qui trouve la solution



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Prog] BASIC CALCULETTE BY GUERRION 
Hello,

C'est du même style que ma calculette, mais le code est différent. Ça permet de voir plusieurs styles, c'est bien Laughing

Pourrais-tu me dire pourquoi tu déclares les gui en global ?

Pour ton problème (que j'avais aussi en programmant ma calculette), à part remplacer par des if, je ne vois pas... =/

Il est bien codé Very Happy . A+




______________________________________________________
Répondre en citant
Message [Prog] BASIC CALCULETTE BY GUERRION 
Les Globals c'étaient pour pouvoir les utiliser dans des fonctions internes ou externes que j'appellerais.
Sinon n'y aurait-t-il pas une autre solution ?
Car chez moi $result=$nb1 & $sign & $nb2
fonctionne, le seul problème c'est que ça ne me le calcul pas et je ne comprends pas pourquoi.



Répondre en citant
Message [Prog] BASIC CALCULETTE BY GUERRION 
hello!

héhé il va faloir prendre l'habitude d'aller chercher dans la doc Mr. Green

Pour ton probleme (je crois avoir compris mais j'avoue que autoIt est mal documenté):
Code:
if ($sign="*") then
result$=$nb1*$nb2
endif
;pareil pour les autres oppérations


@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Répondre en citant
Message [Prog] BASIC CALCULETTE BY GUERRION 
Oui, c'est ce que je disais, et c'est ce que j'ai utilisé dans ma calculette.

Mais le truc c'est que ça change pas grand chose par rapport au case.

Et non, je trouve autoit très bien documenté !



Dernière édition par sablier94 le Dim 28 Nov 2010 - 10:15; édité 1 fois

______________________________________________________
Répondre en citant
Message [Prog] BASIC CALCULETTE BY GUERRION 
hello

sablier94 a écrit:
Et non, je trouve autoit très bien documenté !


je disais ça car je n'ai pas été fichu de trouver une page our les fonctions etaient clasées par types et non par ordre alphabétique

mais je pense pas que ce soit possible de faire comme il a fait en autoit

@+




______________________________________________________
--
> Que pensez vous de l'ajout du repertoire point dans $PATH ?
Ma version de troll 18.0.32 beta 3 vient de me faire un core dump.
-+- SE in Guide du Linuxien Pervers : Bien développer son troll -+-

[Dos9]
Visiter le site web du posteur Skype
Message [Prog] BASIC CALCULETTE BY GUERRION 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch