Traces indésirables sur ma PictureBox!

goguys
Messages postés
36
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
25 avril 2006
- 22 avril 2004 à 19:13
goguys
Messages postés
36
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
25 avril 2006
- 3 mai 2004 à 20:52
Bonjour,

J'utilise une picturebox pour afficher des courbes à partir d'une carte d'acquisition.
Pendant que je fais une acquisition (C'est à dire pendant que mes courbes sont entrain de se tracer), j'ouvre une autre fenêtre plus petite en premier plan et là, c'est la cata!
ça me fait des grandes traces un peu partout sur ma picturebox en second plan.
Le pire c'est que dès que je referme cette fenêtre (celle du 1er plan) l'image est raffraichie et les traces indésirables disparaissent!

Là je sais vraiment plus quoi faire, je veux bien un coup de main...

7 réponses

crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
22 avril 2004 à 19:17
Appelle la méthode Refresh de ta picturebox ou tu traces tes courbe dans ta boucle d'acquisition ! Ce phénomène est du à une trop forte occupation de ton CPU durant l'acquisition des datas, ce qui fait que windows economise du temps en ne faisant pas le refresh de tous les controles comme il le devrait

Christophe R.
0
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
22 avril 2004 à 19:18
P.S. : Solution non garantie !!! mais cela ne fait pas de mal

Christophe R.
0
goguys
Messages postés
36
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
25 avril 2006

26 avril 2004 à 21:16
MERCI BEAUCOUP!

J'ai fait comme tu m'a dis et j'ai plus de traces indésirables.
Mais tu as attiré mon attention sur un point important, la forte occupation du CPU. En effet, je me suis aperçu que mes acquisitions ne durait pas le temps que j'avai souhaité. Je m'explique :
Je fais des acquisitions pouvant durer de 10 à 50 min avec un pas de 1 seconde (interval du timer=1000). Lorsque je chronomètre une acquisition de 10 min, elle dure en fait 10mn10s et le plus étonnant c'est que ce retard est linéaire, 20mn20s pour 20min et 50mn50s pour 50 min.
Crois tu que j'en demande trop au CPU? Qu'en pense tu? T'as une soluce?
0
crenaud76
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
28
26 avril 2004 à 23:39
Si tu te bases sur l'OCX Timer, il est aussi à l'origine de tes souci !! JE penses meme que c'est surement le cas, car la linéarite de ton défaut abonde dans ce sens : Ton timer de base n'est pas bon. JE ne l'ai jamais verifier personnellement, mais il semble que l'OCX Timer, est une montre pas vraiment d'une précision suisse, si tu vois ce que je veux dire. Il est préférable d'utiliser les API si tu veux un timer plus fiable, TimeSetEvent, par exemple !!

Christophe R.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
goguys
Messages postés
36
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
25 avril 2006

28 avril 2004 à 20:52
Malheureusement, ça ne fait que 2 mois que j'utilise VB6 et je ne sais pas encore utiliser les API. En attendant, j'ai mis l'interval du timer à 990 à la place de 1000, c'est pas très rigoureux mais ça fonctionne pas trop mal!
En revanche, je veux bien des informations sur les API, notament celui que tu as énoncé (TimeSetEvent). Si tu as un tutorial sympa, des exemples simples ou autres...
Merci pour ton intêret

GREG.
0
stephanege
Messages postés
1
Date d'inscription
vendredi 30 avril 2004
Statut
Membre
Dernière intervention
30 avril 2004

30 avril 2004 à 14:09
Salut greg, ca fait pas un peu mamaille de mettre 990 dans le timer à la place de 1000 ? Ca me rappelle une microthèse sur un conductimètre où je mettais une constante genre 0,9125442015 pour faire un truc qui marche . Allez bonne continuation
0
goguys
Messages postés
36
Date d'inscription
mardi 21 octobre 2003
Statut
Membre
Dernière intervention
25 avril 2006

3 mai 2004 à 20:52
T'as l'oeil partout Steph! On fait ce qu'on peut, si c'était la seule mamaille je serai bien content!
Eh puis de toute façon c'est pas vraiment une mamaille, puisque:
990 = 1000*x - 10 + y
avec x = 29999999999/29999999999
et y = 0

Alors, ça t'épates hein!
0