<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><category>pcsoft.fr.windev</category><copyright>Copyright 2026, PC SOFT</copyright><lastBuildDate>19 Oct 2020 08:18:14 Z</lastBuildDate><pubDate>18 Oct 2020 11:07:26 Z</pubDate><description>Bonjour,&#13;
&#13;
J'essaie d'implémenter un TimerSys() dans une méthode de classe&#13;
https://doc.pcsoft.fr/fr-FR/?3015006&amp;3015006&#13;
[code:text]&#13;
Code d'une méthode d'un objet :&#13;
Si la fonction TimerSys est appelée dans une méthode d'un objet, le timer est associé à l'objet. Le timer est interrompu par la fonction FinTimerSys, par la libération de l'objet et par la fermeture de la fenêtre. &#13;
[/code]&#13;
Si j'appelle une autre méthode de classe (même vide) dans celle qui est appelée par le TimerSys(), systématiquement j'ai une erreur de dépassement de pile d’exécution :&#13;
[code:text]&#13;
Que s'est-il passé ?&#13;
Votre code a provoqué un dépassement de la pile d'exécution.&#13;
&#13;
Code erreur : 1058&#13;
Niveau : erreur fatale&#13;
&#13;
Dump de l'erreur du module 'wd240vm64.dll' (24.0.600.2).&#13;
Identifiant des informations détaillées (.err) : 1058&#13;
Informations de débogage :&#13;
vm.cpp, 1238&#13;
WLanguage stack overflow&#13;
Informations supplémentaires :&#13;
EIT_PILEWL :&#13;
Méthode main (CTest.main)&#13;
Méthode main (CTest.main), ligne 4&#13;
Méthode main (CTest.main), ligne 4&#13;
[/code]&#13;
&#13;
L'erreur est facilement reproductible avec une classe de test n'ayant que ce code suivant :&#13;
[code:wl]&#13;
CTest est une Classe&#13;
&#13;
FIN&#13;
[/code]&#13;
[code:wl]&#13;
PROCÉDURE init()&#13;
&#13;
SI TimerSys( ":main", 1, 1 ) = 0 ALORS&#13;
	TitreSuivant( "Avertissement" )&#13;
	Erreur( "Création du timer impossible" )&#13;
FIN // SI Timer( main, 1, 1 ) = 0 ALORS&#13;
[/code]&#13;
[code:wl]&#13;
PROCÉDURE main()&#13;
&#13;
update() &#13;
render() &#13;
[/code]&#13;
[code:wl]&#13;
PROCÉDURE update()&#13;
// Vide&#13;
[/code]&#13;
[code:wl]&#13;
PROCÉDURE render()&#13;
// Vide&#13;
[/code]&#13;
test est un CTest // ou test est un objet CTest ou test est un objet dynamique = allouer un CTest&#13;
test.init()&#13;
&#13;
Par contre si je n'appelle pas d'autres méthodes de classe dans main() ou si j'utilise des procédures internes, ça passe :&#13;
[code:wl]&#13;
PROCÉDURE main()&#13;
&#13;
i_update()&#13;
i_render()&#13;
	PROCÉDURE INTERNE i_update()&#13;
		Trace( "update OK" )&#13;
	FIN&#13;
	PROCÉDURE INTERNE i_render()&#13;
		Trace( "render OK" )&#13;
	FIN&#13;
[/code]&#13;
&#13;
Si quelqu'un sait comment faire, je suis preneur !</description><ttl>30</ttl><generator>WEBDEV</generator><language>fr_FR</language><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/243478-comportement-etrange-timersys-dans-methode-classe/read.awp</link><title>Comportement étrange de TimerSys() dans une méthode de classe</title><managingEditor>moderateur@pcsoft.fr (El moderador)</managingEditor><webMaster>webmaster@pcsoft.fr (El webmaster)</webMaster><item><author>Julien V</author><category>pcsoft.fr.windev</category><comments>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/243478-comportement-etrange-timersys-dans-methode-classe-243490/read.awp</comments><pubDate>19 Oct 2020 08:18:14 Z</pubDate><description>Bon c'est de ma faute, ça fonctionne très bien, je n'avais pas déclaré l'objet test est un CTest en variable globale...</description><guid isPermaLink="true">https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/243478-comportement-etrange-timersys-dans-methode-classe-243490/read.awp</guid><link>https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/243478-comportement-etrange-timersys-dans-methode-classe-243490/read.awp</link><source url="https://forum.pcsoft.fr/es-ES/pcsoft.fr.windev/243478-comportement-etrange-timersys-dans-methode-classe/read.awp">Comportement étrange de TimerSys() dans une méthode de classe</source><title>Re: Comportement étrange de TimerSys() dans une méthode de classe</title></item></channel></rss>
