Page 1 sur 1

[R] GUICTRLSETDATA Clignote

Posté : jeu. 02 avr. 2009 23:15
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

Re: [..] GUICTRLSETDATA Clignote

Posté : jeu. 02 avr. 2009 23:23
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. ;)

Re: [..] GUICTRLSETDATA Clignote

Posté : ven. 03 avr. 2009 06:55
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 :(

Re: [..] GUICTRLSETDATA Clignote

Posté : ven. 03 avr. 2009 08:01
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:

Re: [..] GUICTRLSETDATA Clignote

Posté : ven. 03 avr. 2009 18:18
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

Re: [..] GUICTRLSETDATA Clignote

Posté : ven. 03 avr. 2009 21:21
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

Re: [..] GUICTRLSETDATA Clignote

Posté : sam. 04 avr. 2009 13:31
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 ?

Re: [..] GUICTRLSETDATA Clignote

Posté : sam. 04 avr. 2009 21:27
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).

Re: [..] GUICTRLSETDATA Clignote

Posté : sam. 04 avr. 2009 23:53
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?

Re: [..] GUICTRLSETDATA Clignote

Posté : dim. 05 avr. 2009 01:10
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).