Dans ce tutoriel nous essayerons de vous guider pour créer une calculatrice de base, identique à celle de MS-Windows. Nous utiliserons les fonctions GUI de AutoIt.
Il est considéré que vous êtes déjà familiarisé avec la création et le lancement de scripts AutoIt comme indiqué dans l' exemple.
Création de l'interface graphique (GUI) - (Design)
Dans cette partie nous commencerons par la création de l'interface graphique (GUI). Il est bon d'avoir une idée de la conception basée sur l'utilité de notre programme.
C'est-à-dire combien et quels types de contrôles nous aurons besoin. Dans notre cas, nous utiliserons le même modèle que la calculatrice de Windows.
Dans la Fig. 1, nous pouvons voir à quoi ressemblera notre calculatrice.
Fig. 1
Pour commencer la création de notre interface, nous devons inclure quelques librairies qui déclare des constantes que nous utiliserons dans notre boîte de dialoque. Ces constantes contiennent des valeurs numériques de styles et des paramètres qui définissent l'apparence de chaque contrôle, ainsi que les valeurs pour les événements et états. (Normalement, "GUIConstantsEx.au3" existe déjà dans le répertoire d'installation de AutoIt). Plus tard, nous verrons comment l'employer, mais pour l'instant nous allons simplement inclure cette librairie en écrivant dans notre script les lignes suivantes:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
GUICreate("Calculator", 260, 230)
$CTRL_btn1 = GUICtrlCreateButton("1", 54, 138, 36, 29)
; Boutons des chiffres
Local $CTRL_btn0 = GUICtrlCreateButton("0", 54, 171, 36, 29)
Local $CTRL_btn1 = GUICtrlCreateButton("1", 54, 138, 36, 29)
Local $CTRL_btn2 = GUICtrlCreateButton("2", 93, 138, 36, 29)
Local $CTRL_btn3 = GUICtrlCreateButton("3", 132, 138, 36, 29)
Local $CTRL_btn4 = GUICtrlCreateButton("4", 54, 106, 36, 29)
Local $CTRL_btn5 = GUICtrlCreateButton("5", 93, 106, 36, 29)
Local $CTRL_btn6 = GUICtrlCreateButton("6", 132, 106, 36, 29)
Local $CTRL_btn7 = GUICtrlCreateButton("7", 54, 73, 36, 29)
Local $CTRL_btn8 = GUICtrlCreateButton("8", 93, 73, 36, 29)
Local $CTRL_btn9 = GUICtrlCreateButton("9", 132, 73, 36, 29)
Local $CTRL_btnPeriod = GUICtrlCreateButton(".", 132, 171, 36, 29)
; Boutons Mémoire
Local $CTRL_btnMClear = GUICtrlCreateButton("MC", 8, 73, 36, 29)
Local $CTRL_btnMRestore = GUICtrlCreateButton("MR", 8, 106, 36, 29)
Local $CTRL_btnMStore = GUICtrlCreateButton("MS", 8, 138, 36, 29)
Local $CTRL_btnMAdd = GUICtrlCreateButton("M+", 8, 171, 36, 29)
; Boutons Opérations
Local $CTRL_btnChangeSign = GUICtrlCreateButton("+/-", 93, 171, 36, 29)
Local $CTRL_btnDivision = GUICtrlCreateButton("/", 171, 73, 36, 29)
Local $CTRL_btnMultiplication = GUICtrlCreateButton("*", 171, 106, 36, 29)
Local $CTRL_btnSubtract = GUICtrlCreateButton("-", 171, 138, 36, 29)
Local $CTRL_btnAdd = GUICtrlCreateButton("+", 171, 171, 36, 29)
Local $CTRL_btnAnswer = GUICtrlCreateButton("=", 210, 171, 36, 29)
Local $CTRL_btnInverse = GUICtrlCreateButton("1/x", 210, 138, 36, 29)
Local $CTRL_btnSqrt = GUICtrlCreateButton("Sqrt", 210, 73, 36, 29)
Local $CTRL_btnPercentage = GUICtrlCreateButton("%", 210, 106, 36, 29)
Local $CTRL_btnBackspace = GUICtrlCreateButton("Backspace", 54, 37, 63, 29)
Local $CTRL_btnClearE = GUICtrlCreateButton("CE", 120, 37, 62, 29)
Local $CTRL_btnClear = GUICtrlCreateButton("C", 185, 37, 62, 29)
Local $CTRL_EdtScreen = GUICtrlCreateEdit("0.", 8, 2, 239, 23)
Local $CTRL_LblMemory = GUICtrlCreateLabel("", 12, 39, 27, 26)
GUISetState()
Local $msg
Do
$msg = GUIGetMsg()
Until $msg = $GUI_EVENT_CLOSE
Fig. 2
Pour cette partie, nous avons seulement besoin de modifier deux lignes de notre code.
Première modification: Dans la première modification, nous ajouterons dans la ligne de la variable $CTRL_EdtScreen, une définition pour mettre le contrôle (Edit) en lecture seule ($ES_READONLY) et une autre pour le justifier à droite ($ES_RIGHT), pour assembler ces deux variable nous utiliserons BitOR comme cela est présenté dans la ligne de code ci-dessous. Nous ajouterons aussi $WS_EX_STATICEDGE to the parameter of style étendu (exStyle) pour donner une apparence creuse à la bordure. Pour plus d'informations sur la table des styles pour le contrôle EDIT, cliquez ici. (Pour une explication détaillée de chaque style).
Local $CTRL_EdtScreen = GUICtrlCreateEdit("0.", 8, 2, 239, 23, BitOR($ES_READONLY, $ES_RIGHT), $WS_EX_STATICEDGE)
Local $CTRL_LblMemory = GUICtrlCreateLabel("", 12, 39, 27, 26, $SS_SUNKEN)
Après avoir effectué ces modifications, lancez votre script. Vous pouvez voir le changement d'apparence dans la Fig. 3, maintenant notre calculatrice ressemble à la Fig. 1, vue au départ. Vous pouvez aussi regarder ppour référence.
Fig. 3
En guise d'exercice, vous essayerez de mettre le style $BS_FLAT en paramètre de quelques boutons, et vous les verrez en style plat.