[WDxx] Comment interrompre la lecture en cours d'un message

Le
Georges Peyre
Bonjour

Je lit successivement des messages avec EmailLitPremier ou
EmailLitSuivant

Parfois la lecture d'un message s'éternise pour une raison quelconque
et je voudrais alors pouvoir interrompre sa lecture en cours.

Comment gérer cette interruption pour stopper cette lecture que je
pourrai reprendre ultérieurement en la relançant ?

Cordialement

--
Elle est pas belle la vie ?
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
Georges Peyre
Le #14652901
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 ?



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
Le #14650631
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

emailjauge("progressionemail",1000)
evénement(gestioninterruption,"*.*", "progressionemail")

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 ?
Publicité
Poster une réponse
Anonyme