PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → fermer un etat par programmation.
fermer un etat par programmation.
Débuté par Guillaume, 13 oct. 2005 12:00 - 3 réponses
Posté le 13 octobre 2005 - 12:00
Bonjour,

je souhaite que les utilisateur de mon application réseau ne restent pas connectés sur une même fenêtre alors qu'ils ne se servent plus de l'application.
J'ai donc mis un timer qui, tout les 10 min, fait ça:
**************
SI fenetreEnCours = FenEnCours() ET poscurseur = CurseurPos() ET FenEnCours() <> "MENU_PRINCIPAL" ALORS
HFerme("*")
Ferme()
FIN
fenetreEnCours = FenEnCours()
poscurseur = CurseurPos()
*************
Ce code permet de détecter si un utilisateur est sur une même fenetre depuis 10 min sans bouger.
Je ferme alors la fenêtre en question, ect, jusqu'au menu principal s'il ne bouge toujours pas.

Ca marche impecc sauf si mon utilisateur est sur un etat. Ca ferme bien l'état mais il n'a plus la main!! il ne peux plus cliquer sur aucun bouton.
je sais bien que la fonction "ferme()" est uniquement pour les fenêtre mais comment régler mon problème??

Merci.
Posté le 13 octobre 2005 - 16:23
Salut,

j'ai trouvé un moyen qui fonctionne.

Importe la fenetre d'apercu dans ton projet (elle est dans WinDev
9\Exemples\Apercu) et s'appelle apercu.wdw
Dans la description du projet, vas dans l'onglet style et choisis la fentre
d'apercu dans la combo "Fenêtre d'apercu avant impression".

Vas dans le code d'initialisation de la fenêtre et ajoute cette ligne
Evénement("fermeapercu","*.*","fermeapercu")
Ajoute une procedure locale et nomme la "FermeApercu"

dans cette procedure, met la ligne suivante
ferme()

ensuite retourne dans la procedure de pour ton timer
et remplace tout ton SI par celui-ci

SI fenetreEnCours = FenEnCours() ET poscurseur = CurseurPos() ET
FenEnCours() <> "FenDepart" ALORS
SI fenetreEnCours ~= "apercu" ALORS
PostMessage(Handle(fenetreEnCours),"fermeapercu",0,0)
SINON
HFerme("*")
Ferme()
FIN

FIN


Voila, de mon côté ça marche.

Mathieu
Posté le 16 octobre 2005 - 15:04
Merci je vais tester et vous tiens au courant
Posté le 17 octobre 2005 - 08:57
Excellent ! ça fonctionne impec.
Merci beaucoup.