|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
| Débuté par atrioux, 04 jan. 2005 18:22 - 6 réponses |
| |
| | | |
|
| |
| Posté le 04 janvier 2005 - 18:22 |
j'utilise dans une toute petite appli un timersys
celui ci s'empile avant meme que la procedure se termine, enfin il me semble que c'est a cause de ca
ex : TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
si je fait TimerSys("Nomdelaprocedure",600,1), je n'ai plus le probleme
c'est le seul timersys de mon projet et j'ai tenté de le numéroter mais idem il est integre dans l'initialisation de mon projet seul remarque que l'on peut faire : c'est que dans la procedure j'utilise le composant balloontype
ci qq'un peut m'aider |
| |
| |
| | | |
|
| | |
| |
| Posté le 04 janvier 2005 - 18:38 |
Tout dépend de ce que vous faites dans votre procédure. Il peut aussi être avantageux de ne pas imposer un numéro de timer, mais d'utiliser à la place une variable qui sera initialisée de cette façon : NumTimer est un entier // déclaré en global
NumTimer = TimerSys("Nomdelaprocedure",100)
Ainsi, vous évitez tout risque de remplacer un autre timer.
"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de news: 41dab9bd$1@news.pcsoft.fr...
j'utilise dans une toute petite appli un timersys
celui ci s'empile avant meme que la procedure se termine, enfin il me semble que c'est a cause de ca
ex : TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
si je fait TimerSys("Nomdelaprocedure",600,1), je n'ai plus le probleme
c'est le seul timersys de mon projet et j'ai tenté de le numéroter mais idem il est integre dans l'initialisation de mon projet seul remarque que l'on peut faire : c'est que dans la procedure j'utilise le composant balloontype
ci qq'un peut m'aider
|
| |
| |
| | | |
|
| | |
| |
| Posté le 04 janvier 2005 - 18:38 |
Personnellement j'utilise une variable globale ProcEnCours
si ProcEnCours alors retour ProcEnCours = vrai ..... Code ... ProcEnCours = faux
"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de news:41dab9bd$1@news.pcsoft.fr...
j'utilise dans une toute petite appli un timersys
celui ci s'empile avant meme que la procedure se termine, enfin il me
semble
que c'est a cause de ca
ex : TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
si je fait TimerSys("Nomdelaprocedure",600,1), je n'ai plus le probleme
c'est le seul timersys de mon projet et j'ai tenté de le numéroter mais idem
il est integre dans l'initialisation de mon projet seul remarque que l'on peut faire : c'est que dans la procedure j'utilise le
composant balloontype
ci qq'un peut m'aider
|
| |
| |
| | | |
|
| | |
| |
| Posté le 04 janvier 2005 - 18:52 |
"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> écrivait news:41dab9bd$1@news.pcsoft.fr:
TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
Salut,
Pour éviter d'empiler, arrêtre le timer au début de la procédure, effectue le traitement, puis relance le Timer à la fin. De cette façon tu n'es plus tributaire du delai d'exécution de la procédure.
-- En esperant t'avoir aidé. |
| |
| |
| | | |
|
| | |
| |
| Posté le 04 janvier 2005 - 18:55 |
en général pour etre tranquille, a l'entree de votre fonction appelée par le timer, vous tuez le timer et le relancez a la fin de la procédure. Comme ca vous n'aurez jamais d'erreur
Arnaud TRIOUX wrote:
j'utilise dans une toute petite appli un timersys
celui ci s'empile avant meme que la procedure se termine, enfin il me semble que c'est a cause de ca
ex : TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
si je fait TimerSys("Nomdelaprocedure",600,1), je n'ai plus le probleme
c'est le seul timersys de mon projet et j'ai tenté de le numéroter mais idem il est integre dans l'initialisation de mon projet seul remarque que l'on peut faire : c'est que dans la procedure j'utilise le composant balloontype
ci qq'un peut m'aider
|
| |
| |
| | | |
|
| | |
| |
| Posté le 05 janvier 2005 - 11:45 |
Bonjours Sauf pour WD9 je confirme qu'un timer n'est pas relancé quant la procédure appelée est en cours Il n'y a pas d'empilement et c'est tant mieux pour moi car j'utilise ca un maximum (certain timer avec 1 ms)
"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de news:41dab9bd$1@news.pcsoft.fr...
j'utilise dans une toute petite appli un timersys
celui ci s'empile avant meme que la procedure se termine, enfin il me
semble
que c'est a cause de ca
ex : TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
si je fait TimerSys("Nomdelaprocedure",600,1), je n'ai plus le probleme
c'est le seul timersys de mon projet et j'ai tenté de le numéroter mais idem
il est integre dans l'initialisation de mon projet seul remarque que l'on peut faire : c'est que dans la procedure j'utilise le
composant balloontype
ci qq'un peut m'aider
|
| |
| |
| | | |
|
| | |
| |
| Posté le 05 janvier 2005 - 12:05 |
CODE DU PROJET --------------------- CPT est un monétaire = 0 NumTimer est un entier = 0
INITIALISATION DE LA FENETRE ---------------------------------------- NumTimer = TimerSys("TEST1",1) //toutes les centième de seconde
FERMETURE DE LA FENETRE ----------------------------------- IF NumTimer>0 THEN FinTimerSys(NumTimer)
PROCEDURE TEST1() ------------------------- i est un entier j est un entier DateHeure est une chaîne = DateSys()+HeureSys() CPT++ Trace(CPT) FOR i=0 TO 250000 FOR j=0 TO 115 END END Trace(DateHeureDifférence(DateHeure,DateSys()+HeureSys()))
RESULTAT ------------- 1 +000000000000102 // la boucle fait ~1 seconde sur mon PC 2 +000000000000100 3 +000000000000102 4 +000000000000103 5 +000000000000102 6 +000000000000100 7 +000000000000102 8 +000000000000101 9 +000000000000102 10 +000000000000102 11 +000000000000102 12 +000000000000101
PAR CONTRE si à la place de mes deux boucles, je met un Multitache(100) alors la j'ai un stack overflow car dans ce cas je rend la main au autres process donc je redeclenche le timer...
"Arnaud TRIOUX" <atrioux@horloges-huchez.fr> a écrit dans le message de news:41dab9bd$1@news.pcsoft.fr...
j'utilise dans une toute petite appli un timersys
celui ci s'empile avant meme que la procedure se termine, enfin il me
semble
que c'est a cause de ca
ex : TimerSys("Nomdelaprocedure",100,1) la procedure dure 5 secondes et il s'empile et provoque une erreur fatale ensuite car depassement de la pile
si je fait TimerSys("Nomdelaprocedure",600,1), je n'ai plus le probleme
c'est le seul timersys de mon projet et j'ai tenté de le numéroter mais idem
il est integre dans l'initialisation de mon projet seul remarque que l'on peut faire : c'est que dans la procedure j'utilise le
composant balloontype
ci qq'un peut m'aider
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|