Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

AutoIt : mise à jour d'une interface graphique

, , , , ,

Rare sont les fois où je répond par e-mail ou même que je répond par l'interface de mon blog à un problème de script dans AutoIt (ou même tout autre type de problème !). Toutefois ici la question était intéressant : comment mettre à jour une interface graphique ?

Je dirais simplement en utilisant la combinaison de GUICtrlSetData, GUICtrlRead, GUICtrlSetState ! Et pour pouvoir démontrer cela, pourquoi ne pas le faire :

  • Cacher un contrôle : utilisation de GUICtrlSetState :
    GUICtrlSetState($lbl_LabelInvisible, $GUI_HIDE)
    

  • Lire les données d'un contrôle : utilisation de GUICtrlRead :
    GUICtrlRead($btn_Test) = "M.A.J. Terminée"
    

  • Définir les données d'un contrôle : GUICtrlSetData :
    GUICtrlSetData($btn_Test, "Exit")
    



Pour faire un décompte, il suffit donc d'appliquer ce qui est décrit ci-dessus et de l'inclure dans une boucle :
Dim $i
$i = 5
While $i > 0
GUICtrlSetData($btn_Test, "M.A.J. dans " & $i)
$i = $i - 1
Sleep(1000)
WEnd
If $i = 0 Then 
GUICtrlSetData($btn_Test, "M.A.J. Terminée")
EndIf


Vous pouvez aussi définir un style à un contrôle en utilisant l'apendice des styles étendus (exemple une couleur CUICtrlSetColor(controle,couleur)).

Le script complet :
#include <GUIConstants.au3>
#Region ### START Koda GUI section ### Form=
$fm_MonInterface = GUICreate("Mon interface", 450, 245, -1, -1)
$btn_Test = GUICtrlCreateButton("Test", 320, 195, 120, 40, 0)
GUICtrlSetCursor ($btn_Test, 0)
$gp_MAJGUI = GUICtrlCreateGroup(" Mise à jour d'un interface graphique ", 10, 30, 430, 155)
$lbl_StatusInitial = GUICtrlCreateLabel("Status initial", 25, 55, 250, 20)
$lbl_LabelInvisible = GUICtrlCreateLabel("Label apparut pour la mise à jour. Le bouton Test à un décompte", 25, 105, 350, 20)
GUICtrlSetState($lbl_LabelInvisible, $GUI_HIDE)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $btn_Test
If GUICtrlRead($btn_Test) = "M.A.J. Terminée" Then
MsgBox(0, "Information", "La mise à jour de l'interface à déjà été effectuée")
GUICtrlSetData($btn_Test, "Exit")
Else 
If GUICtrlRead($btn_Test) = "Exit" Then Exit
_majCtrl()
EndIf
EndSwitch
WEnd

Func _majCtrl()
GUICtrlSetState($lbl_LabelInvisible, $GUI_SHOW)
GUICtrlSetData($lbl_StatusInitial, "Texte mis à jour et mis en rouge")
GUICtrlSetColor($lbl_StatusInitial, 0xff0000)
Dim $i
$i = 5
While $i > 0
GUICtrlSetData($btn_Test, "M.A.J. dans " & $i)
$i = $i - 1
Sleep(1000)
WEnd
If $i = 0 Then 
GUICtrlSetData($btn_Test, "M.A.J. Terminée")
EndIf
EndFunc

Oups !Opera Web Standards Curriculum

How to use Quote function:

  1. Select some text
  2. Click on the Quote link

Write a comment

Comment
(BBcode and HTML is turned off for anonymous user comments.)

If you can't read the words, press the small reload icon.


Smilies

December 2009
M T W T F S S
November 2009January 2010
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31