Label qui scintille [Résolu]

Signaler
Messages postés
83
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
5 mai 2020
-
Messages postés
83
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
5 mai 2020
-
Bonjour,

J'ai un label qui est mise à jour très souvent, parfois toutes les ms, pour afficher l'évolution d'une tâche.
Quelle est la meilleurs solution pour qu'il ne scintille pas ?

J'ai pensé à l'actualisé moins souvent, avec un timer par exemple, mais ça veut dire changer pas mal de code (il y a beaucoup d'étapes dans la tâche et le texte change à chaque étape).

Merci

2 réponses

Messages postés
2151
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
30 mai 2020
109
Bonjour
Quel intérêt d'avoir un label qui change aussi vite ?
Supprimes le carrément
Messages postés
83
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
5 mai 2020
1
Merci de ta réponse vb95...
Si je demande comment faire c'est que j'ai besoin de ce label... Sinon effectivement je l'aurais supprimé.
J'ai fais la solution dont j'ai parlé dans mon post de départ
Ce n'était finalement pas si compliqué et ça marche bien.
Je stocke le texte dans une variable. Et un timer affiche la variable dans un label toute les 250ms. Cane clignote plus.
Messages postés
179
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
12 mai 2020
5
Si je demande comment faire c'est que j'ai besoin de ce label... Sinon effectivement je l'aurais supprimé. 

Salut Vb95 et Malokoxis…
Malokoxis… ne me dit pas que tu utilisais le label comme zone de stockage !!!
C'est possible, mais fortement déconseillé.
En effet, le contrôle "LABEL", tout comme les "TEXTEBOX" interprètent le texte très sommairement, et en cas de texte en UTF8/16... ou autre textes exotiques, le texte récupéré sera corrompu avec des caractères "?" en lieu est place de caractères spéciaux hors Polices d'affichage, des caractères cabalistiques pour les accents !

Donc, utilise TOUJOURS une "String" en "PUBLIC" (margée ou pas), et non un contrôle. A l'état brut, tu n'auras pas d' "auto-conversion" sur une sortie (noms de fichiers, texte UTF et retours chariots auto-amputés.)
Sinon, en 250ms, on a pas trop le temps de tout lire…
;)
Messages postés
83
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
5 mai 2020
1
Non ce n'était pas du stockage, c'était de l'affichage pur. Mais maintenant je stocke dans une variable pour ensuite afficher toute le 250ms.
C'est un label d'affichage de progression (Ligne xxxx/xxxx).

D'ailleurs, cette application que j'ai créé fabrique des fichier KML contentant parfois plusieurs milliers de ligne. Et la je passe par un richtextbox comme stockage... Très, trop long... il faut que je passe cela par une variable. Il y a des contraintes particulières à passer de l'un à l'autre ?
Messages postés
179
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
12 mai 2020
5 >
Messages postés
83
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
5 mai 2020

Tu peux aussi rafraîchir tous les 100 lignes…

if (NewVal\100)*100<>left(ValLabel.text,instr(ValLabel.text,"L") -1) THEN
     ValLabel.text=(NewVal\100)*100 & " Lignes \ " & TotLigne
end if


Nota : "\" et non "/", car ça te donne une valeur entière.

ça mange pas mal de cycles, ..
Tu peux aussi faire deux Labels, un pour ~newval~ et un pour ~Lignes \ " & TotLigne~
Car tu gagnera du temps en supprimant le Left$.

LabTot.text="Lignes \ " & TotLigne
'(…)
if (NewVal\100)*100<>ValLabel.text THEN ValLabel.text=(NewVal\100)*100

Tu gagnera en rapidité...
Messages postés
83
Date d'inscription
lundi 3 janvier 2011
Statut
Membre
Dernière intervention
5 mai 2020
1 >
Messages postés
179
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
12 mai 2020

Merci JeuDuTaquin.
Messages postés
2151
Date d'inscription
samedi 11 janvier 2014
Statut
Non membre
Dernière intervention
30 mai 2020
109
Penses à clôturer le sujet ( avec la roue dentée en haut à droite)
Merci