AutoIt : mise à jour d'une interface graphique
Thursday, 18. September 2008, 08:35:28
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


How to use Quote function: