[WD10] Timersys

Le
Albert P.
Bonjour,

Je suis en train de devenir chêvre

J'ai un projet dans lequel je dois mettre en place le raffraichissement
d'une table mémoire jusque la rien de compliqué.

Je crée une vue sur le fichier, alimente ma table parfait.

Maintenant pour le raffraichissement, un timersys ( montimer =
timersys("MaProc",700) ) le timer est bien crée et il s'éxécute 1
fois. Je me dis que cela viens de mon code, je vire le contenu de maproc
pour ne laisse qu'un trace("ici ma proc") la procédure n'est exécuté
qu'une fois.

Bon je créé un timersys global (lancé dans le code d'initialisation du
projet) qui me fait un trace("coucou") une fois par secondes. Cela
fonctionne parfaitement lorsque j'ouvre certaines fenêtres. Malheureusement,
des que j'ouvre ma fenetre à raffraichir le trace s'arrête et ne
reprends que lorsque je ferme la dite fenêtre.

Il semblerait qu'il y'ait un process dans cette fenêtre qui me bloque, il
n'y a pourtant pas de procedure avec timer automatique (ni de thread) a
priori pas de champ avec animation (qui de temps en temps débloque).

Si vous avez une idée ou une solution, merci d'avance.

Albert P.

Prochain test : faire une copie de la fenêtre et copier les champs un à un
pour voir ce qui se passe.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Albert P.
Le #19838081
"Albert P." 4a6dc01b$0$12614$
Bonjour,

Je suis en train de devenir chêvre ...

J'ai un projet dans lequel je dois mettre en place le raffraichissement
d'une table mémoire ... jusque la rien de compliqué.

Je crée une vue sur le fichier, alimente ma table ... parfait.

Maintenant pour le raffraichissement, un timersys ( montimer =
timersys("MaProc",700) ) le timer est bien crée ... et il s'éxécute ... 1
fois. Je me dis que cela viens de mon code, je vire le contenu de maproc
pour ne laisse qu'un trace("ici ma proc") ... la procédure n'est exécuté
qu'une fois.

Bon ... je créé un timersys global (lancé dans le code d'initialisation du
projet) qui me fait un trace("coucou") une fois par secondes. Cela
fonctionne parfaitement lorsque j'ouvre certaines fenêtres.
Malheureusement, des que j'ouvre ma fenetre à raffraichir ... le trace
s'arrête et ne reprends que lorsque je ferme la dite fenêtre.

Il semblerait qu'il y'ait un process dans cette fenêtre qui me bloque, il
n'y a pourtant pas de procedure avec timer automatique (ni de thread) a
priori pas de champ avec animation (qui de temps en temps débloque).

Si vous avez une idée ou une solution, merci d'avance.

Albert P.

Prochain test : faire une copie de la fenêtre et copier les champs un à un
pour voir ce qui se passe.









Bon,

Je me sens tout bête (mais plus chêvre)

Le problème ne venait ni de la fenêtre ni d'un champ (j'ai fait le test avec
une fenêtre vide).

En fait, afin d'accéler certain process d'affichage de la fenêtre mère avant
d'ouvir cette fameuse fenêtre, mon prédécesseur avait rendu l'affichage
actif à faux (propriété affichageactif de la fenêtre)

Malheureusement, il semblerait que rendre l'affichage inactif bloque aussi
les timers systemes de la fenêtre mère mais aussi des fenêtre filles. Allez
savoir pourquoi.

Bon dev,

Albert P.
Romain PETIT
Le #19838131
Albert P. a émis l'idée suivante :

Malheureusement, il semblerait que rendre l'affichage inactif bloque aussi
les timers systemes de la fenêtre mère mais aussi des fenêtre filles. Allez
savoir pourquoi.



Bonjour,

Extrait de l'aide à ..AffichageActif

"La propriété AffichageActif ne doit jamais rester avec la valeur Faux.
En effet, cette valeur doit être temporaire (par exemple pendant le
remplissage d'une table).

Dans le cas contraire, le comportement de l'application peut être
incohérent (en effet, Windows occupe alors 100% du processeur à
demander l'affichage du champ, alors que cet affichage n'est pas
activé)."

A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup
Albert P.
Le #19838531
"Romain PETIT"
Albert P. a émis l'idée suivante :

Malheureusement, il semblerait que rendre l'affichage inactif bloque
aussi les timers systemes de la fenêtre mère mais aussi des fenêtre
filles. Allez savoir pourquoi.



Bonjour,

Extrait de l'aide à ..AffichageActif

"La propriété AffichageActif ne doit jamais rester avec la valeur Faux. En
effet, cette valeur doit être temporaire (par exemple pendant le
remplissage d'une table).

Dans le cas contraire, le comportement de l'application peut être
incohérent (en effet, Windows occupe alors 100% du processeur à demander
l'affichage du champ, alors que cet affichage n'est pas activé)."

A+

--
Romain PETIT
contact : http://cerbermail.com/?O16kfXOFcq
+-+ posté sur Usenet avec MesNews et non depuis un forum web +-+
news:fr.comp.developpement.agl.windev
http://www.mesnews.net/
http://fr.wikipedia.org/wiki/Newsgroup





Merci pour la précision ... c'est pas toujours facile de reprendre un projet
développé par un autre. Je viens de faire une recherche sur le projet ...
y'en a de partout :-(

Maintenant cela marche parfaitement, un timersys sur une seconde pour
déterminer si l'on doit lancer le raffraichissement ( la fenêtre doit être
inactive depuis plus de 5 secondes) envoi d'un message système (postmessage)
et réception de l'ordre de mise à jour par la gestion des évènement ..
magique quoi.

Bon dev,

Albert P.
Publicité
Poster une réponse
Anonyme