Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Prog] calculatrice
Auteur Message
Répondre en citant
Message [Prog] calculatrice 
bonsoir

j'ai suivi un tuto pour faire une calculatrice.

je ne l'ai pas suivi bêtement, j'ai fait au fur et à mesure des modifs pour les boutons en particulier

Pour trouver les positions, j'ai tenu compte des largeurs , des espaces , des hauteurs.
j'ai entré les dimensions directement.

bien sûr il doit y avoir des modifs à faire car je suis un super débutant, mais ça me plait
je ne dis pas à qui la faute , mais elle se reconnaitra

je me repète , ce n'est pas de ma création , j'ai suivi un tutoriel

os= seven ultimate


Citation:


#cs ----------------------------------------------------------------------------

AutoIt Version : 3.3.6.0
Auteur: MonNom

Fonction du Script :
Modèle de Script AutoIt.

#ce ----------------------------------------------------------------------------

; Début du script - Ajouter votre code ci-dessous.

#include
#include
#include
#include
global $resultat
global $resultat1
global $operateur
global $chiffre

#Region ### START Koda GUI section ### Form=l:\autoit\mes-scripts\nouveau dossier\calculatrice.kxf
Global $Form1_1 = GUICreate("calculatrice", 400, 300, 740, 322)
Global $INP_resultat = GUICtrlCreateInput("Resultat", 80, 24, 244, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetState(-1, $GUI_DISABLE)
Global $btn_7 = GUICtrlCreateButton("7", 80, 56, 44, 44, $WS_GROUP)
Global $btn_8 = GUICtrlCreateButton("8", 130, 56, 44, 44, $WS_GROUP)
Global $btn_9 = GUICtrlCreateButton("9", 180, 56, 44, 44, $WS_GROUP)
Global $btn_4 = GUICtrlCreateButton("4", 80, 106, 44, 44, $WS_GROUP)
Global $btn_5 = GUICtrlCreateButton("5", 130, 106, 44, 44, $WS_GROUP)
Global $btn_6 = GUICtrlCreateButton("6", 180, 106, 44, 44, $WS_GROUP)
Global $btn_1 = GUICtrlCreateButton("1", 80, 156, 44, 44, $WS_GROUP)
Global $btn_2 = GUICtrlCreateButton("2", 130, 156, 44, 44, $WS_GROUP)
Global $btn_3 = GUICtrlCreateButton("3", 180, 156, 44, 44, $WS_GROUP)
Global $btn_0 = GUICtrlCreateButton("0", 80, 206, 144, 44, $WS_GROUP)
Global $btn_plus = GUICtrlCreateButton("+", 230, 56, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_moins = GUICtrlCreateButton("-", 230, 106, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_multiplier = GUICtrlCreateButton("x", 230, 156, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_diviser = GUICtrlCreateButton("÷", 230, 206, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_egal = GUICtrlCreateButton("=", 280, 56, 44, 194, $WS_GROUP)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

case $btn_7
If $chiffre = 0 Then
$resultat1 &= "7"

ElseIf $chiffre = 1 Then
$resultat &= "7"

EndIf

case $btn_8
If $chiffre = 0 Then
$resultat1 &= "8"

ElseIf $chiffre = 1 Then
$resultat &= "8"
EndIf

case $btn_9
If $chiffre = 0 Then
$resultat1 &= "9"

ElseIf $chiffre = 1 Then
$resultat &= "9"

EndIf

case $btn_4
If $chiffre = 0 Then
$resultat1 &= "4"

ElseIf $chiffre = 1 Then
$resultat &= "4"
EndIf

case $btn_5
If $chiffre = 0 Then
$resultat1 &= "5"

ElseIf $chiffre = 1 Then
$resultat &= "5"

EndIf

case $btn_6
If $chiffre = 0 Then
$resultat1 &= "6"

ElseIf $chiffre = 1 Then
$resultat &= "6"

EndIf

case $btn_1
If $chiffre = 0 Then
$resultat1 &= "1"

ElseIf $chiffre = 1 Then
$resultat &= "1"

EndIf

case $btn_2
If $chiffre = 0 Then
$resultat1 &= "2"

ElseIf $chiffre = 1 Then
$resultat &= "2"

EndIf

case $btn_3
If $chiffre = 0 Then
$resultat1 &= "3"

ElseIf $chiffre = 1 Then
$resultat &= "3"

EndIf

case $btn_0
If $chiffre = 0 Then
$resultat1 &= "0"

ElseIf $chiffre = 1 Then
$resultat &= "0"

EndIf



case $btn_plus

$operateur = 1
$chiffre = 1


case $btn_moins

$operateur = 2
$chiffre = 1


case $btn_multiplier

$operateur = 3
$chiffre = 1

case $btn_diviser

$operateur = 4
$chiffre = 1
case $btn_egal

Switch $operateur

Case 1

$resultat1 = $resultat1 + $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0


Case 2
$resultat1 = $resultat1 - $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0

Case 3
$resultat1 = $resultat1 * $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0

Case 4
$resultat1 = $resultat1 / $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0




EndSwitch
EndSwitch
WEnd







______________________________________________________
à plus

migau
Visiter le site web du posteur
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Prog] calculatrice 
Il nous manque les includes dans ton code donc ça ne fonctionne pas



Répondre en citant
Message [Prog] calculatrice 
Salut,

Oui, il manque les includes mais on peut en déduire qu'il y a
Code:
#include <GUIConstants.au3> ;Pour les GUI


Mais il y a aussi des erreurs de déclarations de variables, J'ai du rajouter ceci pour que ça marche chez moi :
Code:
Local $ES_CENTER,$ES_AUTOHSCROLL,$WS_GROUP
(Mais dès qu'on rajoute les includes, on en a plus besoin...)

Et ça marche. Ou pas Mr. Green, j'ai l'interface, mais je ne peux pas faire de calculs. Je pense qu'il nous manque encore des includes (#include <EditConstants.au3>).

J'aime bien ton interface Okay, merci du partage.




______________________________________________________
Répondre en citant
Message [Prog] calculatrice 
hello à tous

comprends pas pourquoi les includes ne sont pas apparantes sur le 1er post

voici le code en entier comme il aurait dû être mis la 1 ere fois.

désolé de cette bévue , car j'ai fait séléctionner tout
copier
coller

Citation:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
global $resultat
global $resultat1
global $operateur
global $chiffre

#Region ### START Koda GUI section ### Form=l:\autoit\mes-scripts\nouveau dossier\calculatrice.kxf
Global $Form1_1 = GUICreate("calculatrice", 400, 300, 740, 322)
Global $INP_resultat = GUICtrlCreateInput("Resultat", 80, 24, 244, 21, BitOR($ES_CENTER,$ES_AUTOHSCROLL))
GUICtrlSetState(-1, $GUI_DISABLE)
Global $btn_7 = GUICtrlCreateButton("7", 80, 56, 44, 44, $WS_GROUP)
Global $btn_8 = GUICtrlCreateButton("8", 130, 56, 44, 44, $WS_GROUP)
Global $btn_9 = GUICtrlCreateButton("9", 180, 56, 44, 44, $WS_GROUP)
Global $btn_4 = GUICtrlCreateButton("4", 80, 106, 44, 44, $WS_GROUP)
Global $btn_5 = GUICtrlCreateButton("5", 130, 106, 44, 44, $WS_GROUP)
Global $btn_6 = GUICtrlCreateButton("6", 180, 106, 44, 44, $WS_GROUP)
Global $btn_1 = GUICtrlCreateButton("1", 80, 156, 44, 44, $WS_GROUP)
Global $btn_2 = GUICtrlCreateButton("2", 130, 156, 44, 44, $WS_GROUP)
Global $btn_3 = GUICtrlCreateButton("3", 180, 156, 44, 44, $WS_GROUP)
Global $btn_0 = GUICtrlCreateButton("0", 80, 206, 144, 44, $WS_GROUP)
Global $btn_plus = GUICtrlCreateButton("+", 230, 56, 44, 44, $WS_GROUP)

GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_moins = GUICtrlCreateButton("-", 230, 106, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_multiplier = GUICtrlCreateButton("x", 230, 156, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_diviser = GUICtrlCreateButton("÷", 230, 206, 44, 44, $WS_GROUP)
GUICtrlSetFont(-1, 18, 800, 0, "MS Sans Serif")
Global $btn_egal = GUICtrlCreateButton("=", 280, 56, 44, 194, $WS_GROUP)
GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit

case $btn_7
If $chiffre = 0 Then
$resultat1 &= "7"

ElseIf $chiffre = 1 Then
$resultat &= "7"

EndIf

case $btn_8
If $chiffre = 0 Then
$resultat1 &= "8"

ElseIf $chiffre = 1 Then
$resultat &= "8"
EndIf

case $btn_9
If $chiffre = 0 Then
$resultat1 &= "9"

ElseIf $chiffre = 1 Then
$resultat &= "9"

EndIf

case $btn_4
If $chiffre = 0 Then
$resultat1 &= "4"

ElseIf $chiffre = 1 Then
$resultat &= "4"
EndIf

case $btn_5
If $chiffre = 0 Then
$resultat1 &= "5"

ElseIf $chiffre = 1 Then
$resultat &= "5"

EndIf

case $btn_6
If $chiffre = 0 Then
$resultat1 &= "6"

ElseIf $chiffre = 1 Then
$resultat &= "6"

EndIf

case $btn_1
If $chiffre = 0 Then
$resultat1 &= "1"

ElseIf $chiffre = 1 Then
$resultat &= "1"

EndIf

case $btn_2
If $chiffre = 0 Then
$resultat1 &= "2"

ElseIf $chiffre = 1 Then
$resultat &= "2"

EndIf

case $btn_3
If $chiffre = 0 Then
$resultat1 &= "3"

ElseIf $chiffre = 1 Then
$resultat &= "3"

EndIf

case $btn_0
If $chiffre = 0 Then
$resultat1 &= "0"

ElseIf $chiffre = 1 Then
$resultat &= "0"

EndIf



case $btn_plus
$operateur = 1
$chiffre = 1


case $btn_moins
$operateur = 2
$chiffre = 1


case $btn_multiplier
$operateur = 3
$chiffre = 1

case $btn_diviser
$operateur = 4
$chiffre = 1

case $btn_egal

Switch $operateur

Case 1
$resultat1 = $resultat1 + $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0


Case 2
$resultat1 = $resultat1 - $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0

Case 3
$resultat1 = $resultat1 * $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0

Case 4
$resultat1 = $resultat1 / $resultat
GUICtrlSetData($INP_RESULTAT, "" & $resultat1 & "")
$resultat = ""
$resultat1 = ""
$operateur = 0
$chiffre = 0




EndSwitch
EndSwitch
WEnd






Dernière édition par migau le Jeu 31 Mar 2011 - 21:27; édité 2 fois

______________________________________________________
à plus

migau
Visiter le site web du posteur
Répondre en citant
Message [Prog] calculatrice 
Ok, merci.

Ton code est bien Okay , mais tu pourrais encore l'améliorer : Détecter les chiffres tapés au clavier, pouvoir remettre le résultat à 0, afficher les calculs entré directement etc...

C'est l'une des meilleures façon d'apprendre, suivre un tutuoriel et l'améliorer avec ce que l'on a appris ou les idées que l'on a.

A+




______________________________________________________
Répondre en citant
Message [Prog] calculatrice 
sablier94 a écrit:
Salut,

J'aime bien ton interface Okay, merci du partage.


hello

pour le positionnement des boutons , tout a été calculé et les données entrées directement dans la GUI

ex:
le bouton 7

marge à gauche 80
marge en haut 56
bouton 44x44

et pour la suite 6 d'espace entre les boutons

le bouton 8

marge à gauche 80(du bouton 7 ) + 44 (dimensions du bouton 7) + 6 espace = 130

positionnement en haut

56 de marge initiale + 44 dimensions du bouton 7 + 6 espace = 106

rien ne fut laissé au hasard.

voilà , c'est tout simple pour vous, un peu plus compliqué pour moi

merci pour les encouragemments

à plus pour d'autres conseils et notamment pour ce que tu me demandes de faire.




______________________________________________________
à plus

migau
Visiter le site web du posteur
Répondre en citant
Message [Prog] calculatrice 
Bien ta fenêtre est propre, les boutons sont calculés.

Seul défaut que je te reproche c'est de ne pas mettre de tabulations dans ton code.
Dans certains langages les tabulations sont obligatoires, soit parce que le programme est illisible pour l'ordinateur, soit tout simplement
par respect aux autres qui vont le lire.
En Autoit ce n'est pas obligatoire : la preuve ça fonctionne

Mais il tout de même plus facile de lire un code aéré, donc sauter des lignes (tu le fais donc c'est bien) et des tabulations à chaque "niveau" d'instructions.
De plus si tu fais des tabulations, tu liras ton code plus vite, tu trouveras tes erreurs plus vite et tu comprendras la structure de ton code plus vite.
Pareil pour nous, ce qui veut dire débogage plus rapide et performant.
Tout le monde en profite c'est parfait Okay

Allez sinon bon courage pour la suite.

PS : si tu as du temps à perdre utilise ma technique pour rendre ta fenêtre proportionnelle à la taille de l'écran Mr. Green



Répondre en citant
Message [Prog] calculatrice 
Guerrion24 a écrit:


Bien ta fenêtre est propre, les boutons sont calculés.

Seul défaut que je te reproche c'est de ne pas mettre de tabulations dans ton code.
Dans certains langages les tabulations sont obligatoires, soit parce que le programme est illisible pour l'ordinateur, soit tout simplement
par respect aux autres qui vont le lire.
En Autoit ce n'est pas obligatoire : la preuve ça fonctionne

Mais il tout de même plus facile de lire un code aéré, donc sauter des lignes (tu le fais donc c'est bien) et des tabulations à chaque "niveau" d'instructions.
De plus si tu fais des tabulations, tu liras ton code plus vite, tu trouveras tes erreurs plus vite et tu comprendras la structure de ton code plus vite.
Pareil pour nous, ce qui veut dire débogage plus rapide et performant.
Tout le monde en profite c'est parfait Okay

Allez sinon bon courage pour la suite.

PS : si tu as du temps à perdre utilise ma technique pour rendre la fenêtre proportionnelle à la taille de l'écran Mr. Green


hello

je ne prends pas cela pour des reproches mais pour des conseils avisés

cel veut dire quoi des tabulations dans le code? désolé pour mon ignorance

j'ai vu aussi ton astuce pour rendre ta fenêtre proportionnelle à l'écran que je vais tester
pas ce soir , car je suis en ce moment sur du batch.

formation avec Laddy

merci à tous




______________________________________________________
à plus

migau
Visiter le site web du posteur
Répondre en citant
Message [Prog] calculatrice 
Eh bein des tabulations déjà on les fait en appuyant sur la touche au dessus de MAJ (les deux flèches qui vont à droite et à gauche).
Si tu regardes tu te rends compte que quand tu appuie le texte se décale vers la gauche.
Par exemple dans une lettre ou d'en un CV, tu peux faire des tabulations pour faire des alinéas.

En programmation c'est pareil.
En fait tu dois faire "tabuler" les expressions à chaque fois que tu écris une instruction.
Les instructions se sont If, For, Func, While ... ect
Les instructions sont toujours délimitées, donc on les ouvre au début et on les ferme à la fin
Ex: While 1
...
Wend

Les expressions se sont les commandes que tu utilises pour faire tes codes (MsgBox, Send, IniWrite), l'utilisation de vraiables ...ect

Plusieurs expressions peuvent être embriquées.

Je te mets un exemple pour que tu comprenne :


Code:
$hip=0
$hop=1 ;on déclare les variables

Func Exi()
   Exit
EndFunc ; on fait la fonction pour quitter si ça bug, remarque la tabulation car Fun est une instruction

HotKeySet("q","Exi") ; on créé un lien entre la touche q de ton clavier et la fonction

While $hop<>10 ; Tant que la variable hop (hop=1) est différente de 10 on continue

   WinWaitActive("Sans titre - Bloc-notes","") ; tabulation au premier niveau, on attaned le bloc note pour en aps faire n'importe quoi

   Send("Liste " &$hop & "{ENTER}" & "{ENTER}") ; tab premier niv, on envoie le texte Liste suivie du numéro de la liste qui est la variable hop et on saute 2 lignes

   For $hip=0 To 9 Step 1 ; On envoie $hip (c'est un nombre), puis entrer et on revient ici en ayant incrémenter la variable hip

      Send($hip & "{ENTER}") ; on obtient donc une liste de 0 à 9 (remarque la double tabulation, pourquoi ? Car For ets une instruction, et While aussi

   Next ; donc on fait autant de tabulations qu'il y a d'instructions

   $hop+=1 ; on incrémente hop

WEnd ;a terminé l'instruction et on revient au début


Voilà je te laisse avec ce code surcommenté Okay
En espérant que tu es compris, je suis sûr qu'après tu auras moins mal aux yeux Mr. Green



Message [Prog] calculatrice 


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