Skip navigation.

digital-nation

Blog-note d'un informaticien procrastinate...

Utilisation du ProgressSet

, , , , , , , ,

Lorsqu’on déploie un logiciel, en mode silencieux par exemple, il est toujours bon d’indiquer où cette installation en est.

Bien entendu, nous pourrions créer une interface graphique (à l’aide de GUICreate), dans laquelle nous insérerions un GUICtrlCreateProgress… Mais pourquoi faire complexe lorsqu’on peut faire simple ?

Je préconise alors l’utilisation d’un Progress() que l’on peut personnaliser.
Cela se fait simplement par la commande suivante :
ProgressOn("titre du progress", "texte principal", "texte secondaire", position, position, option)


Par la suite, il faut faire « afficher » cette progression. Malheureusement il n’y a pas d’autres secrets que de faire « dormir » le script, le faire patienter. Encore faut-il trouver le temps correct pour que l’utilisateur puisse s’intéresser à cette progression, sans s’endormir ou penser que celle-ci est bloquée.

Je préconise donc une utilisation d’un sleep() variant de 200ms (en dessous c’est inutile, cela parait être « un flash ») à 4000ms (4s) (au dessus c’est un peu énorme, … Et l’utilisateur ne comprendra pas le but).

En code cela donne ceci :
ProgressOn("Deploiement", "Initialisation de l'installation", "Vérification des prérequis", -1, -1, 16); Barre de progression
WinActivate("Deploiement") ; Activation barre de progression
Sleep(500) ; je dors pendant ½ seconde


Lorsque cette barre est initialisée, il faut bien entendu lui donner à manger selon les actions faites.
Certes c’est fastidieux mais c’est nécessaire afin d’avoir un beau déploiement.
Cette mise à jour se fait par ProgressSet()
La syntaxe est aussi facile que le ProgressOn() :
ProgressSet(pourcentage, "mon texte secondaire", "mon texte principal")

Nous aurons donc selon les actions une succession de mise à jour :
ProgressOn( … )
WinActivate( …)
Sleep( … )
ProgressSet( … )
Sleep( … )
 MON_ACTION_A_FAIRE
ProgressSet( … )
Sleep( … )
MON_AUTRE_ACTION_A_FAIRE
ProgressSet( … )
; etc etc


Le pourcentage évoluera selon les actions à faire… Ou ce qu’il faut faire dans l’action (pourcentage de l’action).
Mais par la suite, il faut « tuer » ce Progress() et ça c’est via ProgressOff() (aucun argument nécessaire).

Oui mais… Et si on a des fonctions de vérifications me direz-vous ?
Bien souvent ces fonctions font un renvoi d’erreur. Et bien nous complèterons donc dans la fonction le Progress() !

Func _maFonction($arguments)
$maconditiond_erreur = 1
If $arguments = $maconditiond_erreur Then
ProgressSet(99,"Erreur trouvée", "ERREUR : " & @ScriptLineNumber)
Sleep(3000)
ProgressOff()
MsgBox(0+16, "ERREUR", "Une erreur est rencontrée, sortie du déploiement")
EXIT
EndIf
EndFunc


Simple et esthétique. Et surtout destiné à ne pas s’ennuyer dans les GUI !

Twitter addictInterface utilisateur

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