[R] GUICTRLSETDATA Clignote

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

[R] GUICTRLSETDATA Clignote

#1

Message par L4crymal »

Code : Tout sélectionner

GUICreate("",100,100)
GUISetState()
$lbl=GUICtrlCreateLabel("",20,40,200,200)
For $i=1 to 1000000000 step 1
    GUICtrlSetData($lbl,$i)
Next

Comme vous pouvez le voir ce code affiche rapidement un chiffre qui augmente très vite et d'ailleurs cela clignote ...

Comment éviter ce clignotement
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#2

Message par Tlem »

Rajoutez un Sleep(1) après le GUICtrlSetData
Certes la boucle va moins vite, mais c'est comme ça, sinon ça flash.

Edit : Sinon, rajoutez une boucle vide de manière à faire une temporisation inférieur à 1ms.
J'ai testé avec une boucle de 100 pour rendre presque imperceptible l'effet de clignotement. Par contre ce genre de manipulation est dépendante de la vitesse de la machine. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#3

Message par L4crymal »

Aie, le fait de rajouter de l'attente pour moi est embettant, car c'est un script de traitement pour e-mail qui va TRES vite, et pour mesurer sa vitesse jutilise une boucle qui affiche sur la GUI la vitesse, et ça clignote.

Donc si je rajoute de l'attente cela va ralentir le script :(
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#4

Message par Tlem »

Je ne sais pas quel type de traitement vous effectuez, mais une chose est sure, c'est que cette boucle à vide fait clignoter l'affichage. Si après le GUICtrlSetData vous rajoutez un traitement quelconque qui prendrais ne serait-ce que quelques centièmes de ms alors cela ne clignote plus.
Peut être n'avez vous pas fait les essais avec le traitement. :roll:
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#5

Message par L4crymal »

Pour vous donner une idée:

► Afficher le texte

Votre méthode fonctionne pour le mini script précédent mais pour celui ci non :s
Fichiers joints
velocigif.gif
velocigif.gif (3.18 Kio) Vu 1740 fois
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#6

Message par Tlem »

Je ne peut pas tester votre script, car je n'ai pas l'intégralité des éléments pour le test (Un dossier avec des fichiers à traiter).

Par contre votre splash serait plus agréable comme ceci :
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#7

Message par L4crymal »

Pour revenir au sujet, si vous voulez tester, copier coller 1000 fichiers textes pas très gros et dans l'un d'eux vous mettez une adresse email.


Et la peut on donc éviter le clignotement sur ma GUI ?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#8

Message par Tlem »

Vue la rapidité de traitement, il est normal que ça flash, car vous ré-affichez à chaque fichier la ligne entière de label.

Séparez vos labels, et ne mettez à jour que ce qui est nécessaire (ça flashera sans doute encore, mais seulement sur les nombres).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#9

Message par L4crymal »

C'est une bonne solution, mais il n'y en a vraiment aucune autre pour que ça ne flash plus ? pourquoi le sleep(1) ne fonctionne pas pour ma boucle?
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] GUICTRLSETDATA Clignote

#10

Message par Tlem »

Si vous le mettez entre la ligne

Code : Tout sélectionner

majconcl($FileList[0], $i, $sisegloubrest, $sizedufile, $mailtrouve, $sisegloub)
et le Next cela ne devrait plus flasher (en tout cas chez moi ça fonctionne).
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre