goguys
Messages postés36Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 avril 2006
-
22 avril 2004 à 19:13
goguys
Messages postés36Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 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...
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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
goguys
Messages postés36Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 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?
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 200628 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
goguys
Messages postés36Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 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
stephanege
Messages postés1Date d'inscriptionvendredi 30 avril 2004StatutMembreDernière intervention30 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
goguys
Messages postés36Date d'inscriptionmardi 21 octobre 2003StatutMembreDernière intervention25 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