Comment gérer cette interruption pour stopper cette lecture que je pourrai reprendre ultérieurement en la relançant ?
J'ai trouvé dans l'aide Windev cette façon de traiter un évènement qui affiche l'avancement de la lecture du message.
Pouriez-vous me dire comment y adapter une interruption pour arrêter la lecture en sortant de ma boucle de lecture.
// La jauge est gérée par l'événement ProgressionEmail EmailJauge("ProgressionEmail")
-- Code d'initialisation de la fenêtre Evénement(GestionBarre,"*.*", "ProgressionEmail")
Procédure GestionBarre(TotalOctet, TotalTransmis) Trace("Transfert en cours : " +TotalTransmis+" / "+ TotalOctet)
Merci d'avance
-- Elle est pas belle la vie ?
Georges Peyre
Bonjour
Georges Peyre a couché sur son écran :
Georges Peyre a couché sur son écran :
Comment gérer cette interruption pour stopper cette lecture que je pourrai reprendre ultérieurement en la relançant ?
Je vous retransmet la solution fournie par Samir BOUCHETIBAT dans un autre forum
on peut utiliser le traitement suivant (un peu brutal, il est vrai, car il ferme la session d'email en cours)
1 - declarer une variable globale au projet
traitementinterrompu est un booleen //--------------------------------------------------
2 - encadrer tous les ordres de lecture email par des quand exception (emaillitpremier,emaillitsuivant, emailsupprime...)
quand exception dans si pas traitementinterrompu alors emaillitpremier(luser) faire //rien du tout ... fin //------------------------------------------------------------
3 - changer la boucle
tanque pas email.endehors
par
traitementinterrompuúux tanque pas email.endehors et pas traitementinterrompu
4 - dans la fenêtre appelant le traitement des emails, créer la procédure suivante :
procedure gestioninterruption() si traitementinterrompu alors emailfermesession(luser) //luser doit être déclaré en global ou connu dans la fenêtre sinon multitâche(-1) fin //eventuellement pour une jauge de transfert //trace("transfert en cours : " + eve.lparam+" / "+ eve.wparam)
5 - dans le code d'initialisation de la fenêtre effectuant l'interrogation des emails
déclarer un événement qui sera appelé tous les 1ko
6 - créer dans cette même fenêtre un simple bouton avec pour code : traitementinterrompu=vrai
7 - lancer la récupération d'emails, un clic sur le bouton interrompra la lecture à tout moment.
8 - si vous désirez continuer à recevoir et envoyer des messages il faut remettre le code interruption à faux à re-ouvrir la session en fin de la boucle de lecture interrompue
SI TraitementInterrompu = Vrai ALORS TraitementInterrompu = Faux Erreur("Vous venez d'interrompre la lecture des messages") Jauge() EmailOuvreSessionPOP3(luser) SI ErreurDétectée ALORS Erreur("Impossible d'ouvrir la session POP.",ErreurInfo()) RETOUR FIN FIN
-- Elle est pas belle la vie ?
Bonjour
Georges Peyre a couché sur son écran :
Georges Peyre a couché sur son écran :
Comment gérer cette interruption pour stopper cette lecture que je pourrai
reprendre ultérieurement en la relançant ?
Je vous retransmet la solution fournie par Samir BOUCHETIBAT dans un
autre forum
on peut utiliser le traitement suivant (un peu brutal, il est vrai, car
il
ferme la session d'email en cours)
1 - declarer une variable globale au projet
traitementinterrompu est un booleen
//--------------------------------------------------
2 - encadrer tous les ordres de lecture email par des quand exception
(emaillitpremier,emaillitsuivant, emailsupprime...)
quand exception dans
si pas traitementinterrompu alors emaillitpremier(luser)
faire
//rien du tout ...
fin
//------------------------------------------------------------
3 - changer la boucle
tanque pas email.endehors
par
traitementinterrompuúux
tanque pas email.endehors et pas traitementinterrompu
4 - dans la fenêtre appelant le traitement des emails, créer la
procédure
suivante :
procedure gestioninterruption()
si traitementinterrompu alors
emailfermesession(luser) //luser doit être déclaré en global ou
connu dans
la fenêtre sinon
multitâche(-1)
fin
//eventuellement pour une jauge de transfert
//trace("transfert en cours : " + eve.lparam+" / "+ eve.wparam)
5 - dans le code d'initialisation de la fenêtre effectuant
l'interrogation
des emails
déclarer un événement qui sera appelé tous les 1ko
6 - créer dans cette même fenêtre un simple bouton avec pour code :
traitementinterrompu=vrai
7 - lancer la récupération d'emails, un clic sur le bouton interrompra
la
lecture à tout moment.
8 - si vous désirez continuer à recevoir et envoyer des messages il
faut
remettre le code interruption à faux à re-ouvrir la session en fin de
la boucle de lecture interrompue
SI TraitementInterrompu = Vrai ALORS
TraitementInterrompu = Faux
Erreur("Vous venez d'interrompre la lecture des messages")
Jauge()
EmailOuvreSessionPOP3(luser)
SI ErreurDétectée ALORS
Erreur("Impossible d'ouvrir la session POP.",ErreurInfo())
RETOUR
FIN
FIN
Comment gérer cette interruption pour stopper cette lecture que je pourrai reprendre ultérieurement en la relançant ?
Je vous retransmet la solution fournie par Samir BOUCHETIBAT dans un autre forum
on peut utiliser le traitement suivant (un peu brutal, il est vrai, car il ferme la session d'email en cours)
1 - declarer une variable globale au projet
traitementinterrompu est un booleen //--------------------------------------------------
2 - encadrer tous les ordres de lecture email par des quand exception (emaillitpremier,emaillitsuivant, emailsupprime...)
quand exception dans si pas traitementinterrompu alors emaillitpremier(luser) faire //rien du tout ... fin //------------------------------------------------------------
3 - changer la boucle
tanque pas email.endehors
par
traitementinterrompuúux tanque pas email.endehors et pas traitementinterrompu
4 - dans la fenêtre appelant le traitement des emails, créer la procédure suivante :
procedure gestioninterruption() si traitementinterrompu alors emailfermesession(luser) //luser doit être déclaré en global ou connu dans la fenêtre sinon multitâche(-1) fin //eventuellement pour une jauge de transfert //trace("transfert en cours : " + eve.lparam+" / "+ eve.wparam)
5 - dans le code d'initialisation de la fenêtre effectuant l'interrogation des emails
déclarer un événement qui sera appelé tous les 1ko
6 - créer dans cette même fenêtre un simple bouton avec pour code : traitementinterrompu=vrai
7 - lancer la récupération d'emails, un clic sur le bouton interrompra la lecture à tout moment.
8 - si vous désirez continuer à recevoir et envoyer des messages il faut remettre le code interruption à faux à re-ouvrir la session en fin de la boucle de lecture interrompue
SI TraitementInterrompu = Vrai ALORS TraitementInterrompu = Faux Erreur("Vous venez d'interrompre la lecture des messages") Jauge() EmailOuvreSessionPOP3(luser) SI ErreurDétectée ALORS Erreur("Impossible d'ouvrir la session POP.",ErreurInfo()) RETOUR FIN FIN