Re: Impression etat ???

Posté par drcharly93 le 9/9/2004 15:16:13
Bonjour,

Tenter plutôt de modifier le code qui gère le rafraîchissement en testant si l'état de la fenêtre, ainsi le timer sera désactivé automatiquement lorsque la fenêtre perdra son focus et se réactivera lorsqu'elle reprendra le focus

Si vous utilisez des procédures locales pour gérer le rafraîchissement il vous suffit de modifier la procédure en conséquence.

Si vous utilisez les classes WinDev pour gérer le rafraîchissement cela différent:

Il vous faut créer une classe qui hérite de la classe de Base celle de Windsurf, puis de ré-écrire la procédure en question :

Exemple de code existant à l?ouverture de vos fenêtres table
gclTable est un objet CWDTable

Utiliser la technique des procédures virtuelles : voir ceci

Conception : Créer une nouvelle Classe
cMaClasse est une classe
GLOBALE
	Un objet CWDTable
PRIVE
	msFenetreNom est une chaîne
FIN

Maintenant créer la procédure suivante qui va remplacer celle de la classe CWDTable
N?oubliez pas de modifier la propriété de la procédure en Virtuelle via le bouton droit sur le nom de la procédure dans le Kouglof de WinDev.
PROCEDURE VIRTUELLE Raffraichir()

Créer aussi la méthode du Constructeur
PROCEDURE Constructeur(sFenetreNom= FenEnExécution(), sNomTable="Table",sCleParcours="")
:msFenetreNom = sFenetreNom
Constructeur CWDTable(sNomTable,sCleParcours)

Recopier le code qui existe dans la procédure CWDTable:Rafraichir(), puis modifier la afin qu?elle réagisse si la condition suivante est vrai.
Rajouter ceci au début de la procédure
SI :msFenetreNom <> FenEnExecution() Alors RETOUR

Cela aura pour effet de n?exécuter le code de rafraîchissement que si la fenêtre en cours à le focus.

Mise en place de votre Classe :
Remplacer :
gclTable est un objet CWDTable par :
gclTable est un objet cMaClasse

Voilà le comportement de la classe va conserver son fonctionnement et bénéficiera des évolutions que PC Soft apportera à ces classes de base à l?exception de la procédure CWDTable :Rafraichir() car celle-ci est exécutée à partir de votre classe.

Ainsi vous n'aurez plus besoin de saisir de code dans la prise et perte de focus de la fenêtre.

Tout ceci est saisie à la volée et peut comporter quelques erreurs.
Voilà en espérant vous avoir apporter la solution.

Cette contribution était de : http://old.wdforge.org/newbb/viewtopic.php?forum=12&topic_id=1276&post_id=5214